如何更新现有的 excel .ods 文件?
How to update an existing excel .ods file?
一旦我从 .xls 文件中的 sheet 读取数据。我想将该数据放在扩展名为 .ods 的现有 excel 文件中的 sheet 中,而不更改 excel 文件中的任何其他内容。我试过 openpyxl 但它不支持 .ods 文件所以我尝试使用 pyexcel-ods3 但我仍然不确定如何使用 pyexcel-ods3 更新现有的 .ods 文件。
这是我试过的代码,但它用于编写新的 .ods excel 文件,而不是用于更新现有文件
from pyexcel_ods3 import save_data
data = OrderedDict() # from collections import OrderedDict
data.update({"Sheet 1": [[1, 2, 3], [9, 5, 6]]})
data.update({"Sheet 2": [["row 1", "row 2", "row 3"]]})
save_data("your_file.ods", data)
我试图在 pyexcel-ods3 doc 中找到更新代码,但找不到任何东西。
pyexcel-ods3 中是否有代码请告诉我。如果可以完成此任务,我也愿意尝试任何新软件包。我的 python 版本是 3.9.1 .
您加载原始文件并不是为了更改它。
库未检测到您要更改现有文件,如果您使用现有文件的名称保存文件,它将覆盖现有文件。
为了修改一个文件,您需要加载它,可能会在内存中重新创建结构,并进行更改,然后将其保存回文件系统。
相关代码from the link you posted是:
from pyexcel_ods3 import get_data
data = get_data("your_file.ods")
You can find that section here
我说“可能在内存中重新创建结构”的原因是因为不能保证它会加载格式等 - 例如,有时 openpyxl 会删除格式并且只处理值。
一旦我从 .xls 文件中的 sheet 读取数据。我想将该数据放在扩展名为 .ods 的现有 excel 文件中的 sheet 中,而不更改 excel 文件中的任何其他内容。我试过 openpyxl 但它不支持 .ods 文件所以我尝试使用 pyexcel-ods3 但我仍然不确定如何使用 pyexcel-ods3 更新现有的 .ods 文件。
这是我试过的代码,但它用于编写新的 .ods excel 文件,而不是用于更新现有文件
from pyexcel_ods3 import save_data
data = OrderedDict() # from collections import OrderedDict
data.update({"Sheet 1": [[1, 2, 3], [9, 5, 6]]})
data.update({"Sheet 2": [["row 1", "row 2", "row 3"]]})
save_data("your_file.ods", data)
我试图在 pyexcel-ods3 doc 中找到更新代码,但找不到任何东西。
pyexcel-ods3 中是否有代码请告诉我。如果可以完成此任务,我也愿意尝试任何新软件包。我的 python 版本是 3.9.1 .
您加载原始文件并不是为了更改它。
库未检测到您要更改现有文件,如果您使用现有文件的名称保存文件,它将覆盖现有文件。
为了修改一个文件,您需要加载它,可能会在内存中重新创建结构,并进行更改,然后将其保存回文件系统。
相关代码from the link you posted是:
from pyexcel_ods3 import get_data
data = get_data("your_file.ods")
You can find that section here
我说“可能在内存中重新创建结构”的原因是因为不能保证它会加载格式等 - 例如,有时 openpyxl 会删除格式并且只处理值。