3

我知道一些 Python xlsx 阅读器正在兴起,但据我所见,它们似乎不像内置csv模块那么直观。

我想要的是一个可以执行以下操作的模块:

reader = xlsx.reader(open('/path/to/file'))

for sheet in reader:
    print 'In %s we have the following employees:' % (sheet.name)
    for row in sheet:
        print '%s, %s years old' % (row['Employee'], row['Age'])

有这样的读者吗?

4

2 回答 2

4

xlrd 具有用于基本数据提取的 xlsx 处理,使用与 xls 相同的 API,目前处于 alpha 测试中。有兴趣的给我发私信。

于 2010-07-06T22:41:38.817 回答
2

好吧,也许不是 xlsx 格式,但肯定是 xls。从这里获取 xlrd:

http://www.python-excel.org/

下面是一些示例代码,可以让您感受一下它的易用性:

import xlrd

EMPLOYEE_CELL = 5
AGE_CELL = 6

reader = xlrd.open_workbook('C:\\path\\to\\excel_file.xls')
for sheet in reader.sheets():
    print 'In %s we have the following employees:' % (sheet.name)
    for r in xrange(sheet.nrows):
        row_cells = sheet.row(r)
        print '%s, %s years old' % (row_cells[EMPLOYEE_CELL].value, row_cells[AGE_CELL].value)

如果您可以将文档保存为 xls,那么您应该很好。我没有尝试上面的代码,但如果不是 100% 正确,那也非常接近。试试看,让我知道。

编辑:

我猜你正在尝试在非 Windows 机器上执行此操作。您可以使用 PyODConverter 之类的工具将文档从 xlsx 转换为 xls,然后针对转换后的文件运行。像这样的东西:

user@server:~# python DocumentConverter.py excel_file.xlxs excel_file.xls user@server:~# python script_with_code_above.py

再一次,尚未对其进行测试,但希望它能满足您的需求。

于 2010-07-06T18:56:26.620 回答