【问题标题】:Python .xlsx (Office OpenXML) reader as simple as csv module?Python .xlsx (Office OpenXML) 阅读器和 csv 模块一样简单?
【发布时间】:2010-07-06 18:46:53
【问题描述】:
我知道一些 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'])
有这样的读者吗?
【问题讨论】:
标签:
python
module
openxml
xmlreader
xlsx
【解决方案1】:
xlrd 具有用于基本数据提取的 xlsx 处理,使用与 xls 相同的 API,目前处于 alpha 测试中。如果有兴趣,请给我发送私人电子邮件。
【解决方案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
再次,尚未对其进行测试,但希望它能满足您的需求。