2024-09-28 23:27:09 发布
网友
我已经能够使用xlrd读取Excel单元格值,使用列和行号作为输入。现在我需要访问一些电子表格中以.ods格式保存的单元格值。在
例如,如何使用Python读取存储在.ods文件中的E10单元格中的值?在
破解XML不应该太难。。。但也有一些并发症。举一个例子:OOo在他们的智慧下决定不显式地写单元格地址。没有像address="E10"或column="E"这样的单元格属性;您需要对行和列进行计数。在
address="E10"
column="E"
五个连续的空单元格用<table:table-cell table:number-columns-repeated="5" />
<table:table-cell table:number-columns-repeated="5" />
number-colums-repeated属性默认为“1”,也适用于非空单元格。在
number-colums-repeated
当您合并单元格时,情况会变得更糟;您将得到一个covered-table-cell标记,它与table-cell标记相同90%,并且属性number-columns-spanned和{}需要计算到列和行计数中。在
covered-table-cell
table-cell
number-columns-spanned
table:table-row标记可能具有number-rows-repeated属性。这可用于重复整个非空行的内容,但通常在有多个连续空行时出现。在
table:table-row
number-rows-repeated
因此,即使您对“在我的数据上工作”的方法感到满意,这也不是小事。在
你可以看看ODFpy。注意第二句话:“与其他更方便的API不同,这个API本质上是XML格式之上的一个抽象层。”“有一个ODF到HTML的脚本(如果它是为ODS和ODT编写的)可能会被破解以获得您想要的东西。在
如果您更喜欢“几乎可以处理所有人的数据,并且支持并且具有您熟悉的接口”的方法,那么您可能需要等到该功能被放入xlrd。。。但这不会很快发生。在
xlrd
从我尝试过的库中,ezodf才是有效的。在
from ezodf import opendoc, Sheet doc = opendoc('test.ods') for sheet in doc.sheets: print sheet.name cell = sheet['E10'] print cell.value print cell.value_type
pyexcel的odscrashed,odfpycrashed,此外,它的文档要么丢失要么很糟糕。在
考虑到我测试的第一个文件中假定正在工作的库死机,我宁愿避免编写自己的处理程序,因为它迟早会崩溃,或者更糟的是,在某些更奇怪的情况下会默默地失败。在
编辑:情况变得更糟了。ezodf可以silently return bogus data。在
破解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
和{table:table-row
标记可能具有number-rows-repeated
属性。这可用于重复整个非空行的内容,但通常在有多个连续空行时出现。在因此,即使您对“在我的数据上工作”的方法感到满意,这也不是小事。在
你可以看看ODFpy。注意第二句话:“与其他更方便的API不同,这个API本质上是XML格式之上的一个抽象层。”“有一个ODF到HTML的脚本(如果它是为ODS和ODT编写的)可能会被破解以获得您想要的东西。在
如果您更喜欢“几乎可以处理所有人的数据,并且支持并且具有您熟悉的接口”的方法,那么您可能需要等到该功能被放入
xlrd
。。。但这不会很快发生。在从我尝试过的库中,ezodf才是有效的。在
pyexcel的odscrashed,odfpycrashed,此外,它的文档要么丢失要么很糟糕。在
考虑到我测试的第一个文件中假定正在工作的库死机,我宁愿避免编写自己的处理程序,因为它迟早会崩溃,或者更糟的是,在某些更奇怪的情况下会默默地失败。在
编辑:情况变得更糟了。ezodf可以silently return bogus data。在
相关问题 更多 >
编程相关推荐