使用xrld python包解析.xlsx表

时间:2013-09-28 19:14:11

标签: python excel xlsx xlrd

我有一张带有样本数据的xlsx表,如下所示。

fileinfo: sample file | DateCreated: 09/23/2013 | Country: Japan

Num. | Name | Age | Sex | Country

  1  | Mark | 45  | M   | Australia
  2  | Steve| 50  | M   | United kingdom
  3  | Julia| 35  | F   | USA

fileinfo: sample file | DateCreated: 09/23/2013 | Country: Japan

Num. | Name | Age | Sex | Country

  1  | Ronald | 64  | M   | USA
  2  | Micheal| 52  | M   | China
  3  | Zed    | 35  | F   | USA

该文件包含文件中任何位置的fileinfo行以及文件中的有多少次。我需要确保我没有在我的代码中捕获它们。

在xlrd中是否有一种方法可以将标题和数据捕获到字典中,而在此示例中仅保留文本数据,即文件信息行。

这是我到现在为止的代码。

import xlrd

def importXLSX(fileName):
    with xlrd.open_workbook(fileName) as wb:
        worksheet = wb.sheet_by_index(0)

    total_rows = worksheet.nrows

    num_rows, curr_row = worksheet.nrows, 0

    keys = [x.value for x in worksheet.row(1)]

    data = dict((x, []) for x in keys)

    while curr_row < num_rows:
        curr_row += 1
        for i, val in enumerate(worksheet.row(curr_row+1)):
            data[keys[i]].append(val)
    return data


data = importXLSX('simple.xlsx')
print data

1 个答案:

答案 0 :(得分:1)

我终于找到了办法。当单元格为空时,XLRD返回零。所以我能够将行与空列进行比较并找出哪些是标题行并将它们添加到列表中,最后迭代并打印它们。