使用 Python 在现有的 excel 文件中修改和写入数据

Posted

技术标签:

【中文标题】使用 Python 在现有的 excel 文件中修改和写入数据【英文标题】:Modifying and writing data in an existing excel file using Python 【发布时间】:2016-11-22 15:03:44 【问题描述】:

我有一个 Excel 文件 (xlsx),其中已经包含大量数据。现在我正在尝试使用 Python 将新数据写入这个 Excel 文件。我查看了 xlwt、xldd、xlutils 和 openpyxl,所有这些模块都需要您加载我的 Excel 工作表的数据,然后应用更改并保存到新的 Excel 文件中。有没有办法只更改现有 Excel 工作表中的数据,而不是加载工作簿或保存到新文件?

【问题讨论】:

是可以表示为 .csv 文件的简单工作表吗?如果是这样,您可以在附加模式下作为文本文件打开,然后开始将行写入底部 Search and replace a line in a file in Python的可能重复 但我不知道它是否适用于二进制的excel文件。 @Aaron 这是一个 Excel 工作表而不是 .csv 文件。而且我认为它的工作方式与文本文件不同。 @JerryShi 我知道它目前是一个excel表,但是数据可以表示为值列吗?如果是这样,您可以将现有工作表导出为csv文件,然后使用本机python写入文件末尾(追加模式) 【参考方案1】:

这是不可能的,因为 XLSX 文件是 zip 归档文件,不能就地修改。理论上,可以只编辑构成 OOXML 包的存档的一部分,但实际上这几乎是不可能的,因为相关数据可能分布在不同的文件中。

【讨论】:

【参考方案2】:

请再次检查 Openpyxl。您可以加载数据、使用 python 执行操作、将结果写入同一文件或同一工作表的新工作表中并保存(因为一切都在内存中发生)。

例如: 加载数据

wb = openpyxl.load_workbook("file.xlsx", data_only=True)

用python操作

# python codes

创建工作表

some_sheet = wb.create_sheet("someSheet") # by default at the end

在工作表中写入的程序

# program to write in sheet

保存文件(保存前不要忘记关闭excel文件,因为它会引发“权限错误”)

wb.save("file.xlsx"

这是链接 https://openpyxl.readthedocs.io/en/default/tutorial.html

【讨论】:

以上是关于使用 Python 在现有的 excel 文件中修改和写入数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中使用pandas在现有的excel工作表中追加列

pandas如何在现有的Excel表格上新建工作表并添加dataframe

使用 POI 写入现有的 excel 文件

如何将更改保存到现有的 excel 文件,而不是创建包含更改的 txt 文件?

从 Python 运行 TCL 代码(在现有的 TCL shell 上)

如何在现有的 QSettings 文件中添加组