我已经能够使用 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-cell
与 table-cell
90% 相同的标签标记和属性 number-columns-spanned
和 number-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/