Python:如何将数据写入 Excel 2007+ 文件(.xlsx 文件)?

15

有没有Python模块可以编写Excel 2007+文件?
我想要编写一个超过65535行的文件,只有Excel 2007+支持。

8个回答

17

10

有两个库值得一看。

Python-xlsxPyXLSX

编辑:如评论中所提到的,如果你要写入,可以查看openpyxl


6
OP想要编写Excel 2007+文件。Python-xlsx: "解析Office Open XML电子表格 - xlsx中的数据的微型Python代码"; pyXLSX:“pyXLSX-用于读取Excel 2007文件的Python类库”。 - John Machin

8

您应该看一下xlsxcessive。它用于编写xlsx文件,可能更符合Python的风格。


1
我也更喜欢使用xlsxcessive来编写xlsx文件。它支持合并单元格,而openpyxl不支持。 - guettli
这个项目还在维护吗?Bitbucket 上的提交似乎突然停止了(一直很规律,直到 2011-04-30 突然就没有了)。 - John Machin
可能不是这样的。那时候开发人员换了工作,所以我想他停止更新了。:( - chmullig
值得一提的是,openpyxl现在支持合并单元格。 - John Y

7

Python模块XlsxWriter可用于编写2007年以后的xlsx文件。


1

如果您使用的是Windows操作系统并且已安装Excel 2007+,则应该可以使用pywin32和COM编写XLSX文件,几乎可以使用与编写XLS文件相同的代码...只需在结尾处更改“另存为...”部分即可。

可能,您也可以使用可免费下载的附加组件包在Excel 2003中编写XLSX文件,但每个工作表的行数将限制为64K。


1

1
这应该会给你一个如何做到这一点的想法:

import xlsxwriter

workbook = xlsxwriter.Workbook("output_file.xlsx"))
# new sheet
worksheet = workbook.add_worksheet("sheet_name")
# Add a number format: 3 digits precision
precision = workbook.add_format({'num_format': '0.000'})

for(iterate your data):
    worksheet.write(row, col, title)
    worksheet.write_number(row, col, value, precision)
    ...

workbook.close()

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接