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

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

【问题讨论】:

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

标签: python openpyxl xlrd xlwt xlutils


【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多