python - 如何从 OpenOffice Calc .ods 文件中读取单元格的值?

标签 python ods

我已经能够使用 xlrd 使用列号和行号作为输入来读取 Excel 单元格值。现在我需要访问一些以 .ods 格式保存的电子表格中的相同单元格值。

例如,我如何使用 Python 读取 .ods 文件中单元格 E10 中存储的值?

最佳答案

破解 XML 的方法不应该太难……但也有复杂性。仅举一个例子:OOo 明智地决定不显式写入单元格地址。没有像 address="E10" 这样的单元格属性或 column="E" ;您需要计算行数和列数。

五个连续的空单元格用
表示 <table:table-cell table:number-columns-repeated="5" />

number-colums-repeated属性默认为“1”,也适用于非空单元格。

合并单元格时情况会变得更糟;你得到一个covered-table-celltable-cell 90% 相同的标签标记和属性 number-columns-spannednumber-rows-spanned需要计入列数和行数。

A table:table-row标签可能有一个 number-rows-repeated属性。这可用于重复整个非空行的内容,但最常见于超过 1 个连续空行的情况。

因此,即使您对“处理我的数据”的方法感到满意,这也不是微不足道的。

你可能想看看ODFpy .注意第二句话:“”“与其他更方便的 API 不同,这个 API 本质上是 XML 格式之上的抽象层。”“”有一个 ODF-to-HTML 脚本(如果它是为 ODS 以及对于 ODT)可能会被破解以获得你想要的东西。

如果您更喜欢“适用于几乎每个人的数据并且受支持并且具有您熟悉的界面”的方法,您可能需要等到功能被放入 xlrd 中...但这不会很快发生。

关于python - 如何从 OpenOffice Calc .ods 文件中读取单元格的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2740763/

相关文章:

Python代码运行太慢,我是否需要找到一种方法来为Python进程分配更多内存?

python - 从 Python 脚本限制一次运行的进程数

python - 输入层的 TensorFlow Keras 维度误差

java - .ods 电子表格到 JTable

matlab - 将 .ods 工作表加载到 Octave 时出错

python - 根据相邻坐标操作 pandas 数据框

Python - 如果在嵌套列表中找到字符串则返回 true

java - JOpenDocument:空白行和单元格的问题

mysql - ODS导入MySQL : offset data

python - 电子表格到python字典的转换