4

入力として列番号と行番号を使用して、xlrd で Excel セルの値を読み取ることができました。ここで、.ods 形式で保存されたいくつかのスプレッドシートで同じセル値にアクセスする必要があります。

たとえば、.ods ファイルのセル E10 に格納されている値を Python で読み取るにはどうすればよいでしょうか。

4

2 に答える 2

4

XML をハッキングするのはそれほど難しいことではありませんが、複雑な問題があります。ほんの一例: OOo は賢明にも、セル アドレスを明示的に書き込まないことを決定しました。address="E10"orのようなセル属性はありませんcolumn="E"。行と列を数える必要があります。

5 つの連続する空のセルは、次のように表されます。
<table:table-cell table:number-columns-repeated="5" />

このnumber-colums-repeated属性のデフォルトは「1」で、空でないセルにも適用されます。

セルを結合するとさらに悪化します。タグと属性covered-table-cellが90%同じタグを取得し、列と行のカウントを計算する必要があります。table-cellnumber-columns-spannednumber-rows-spanned

table:table-rowタグには属性がある場合がありますnumber-rows-repeated。これは、空でない行全体の内容を繰り返すために使用できますが、複数の連続した空の行がある場合に最もよく見られます。

したがって、「自分のデータで動作する」というアプローチに満足したとしても、それは些細なことではありません。

ODFpyを見たいと思うかもしれません。2 番目のセンテンスに注意してください: """他のより便利な API とは異なり、これは本質的に XML 形式のすぐ上にある抽象化レイヤーです。""" ODF-to-HTML スクリプトがあります。 ODT の場合) をハッキングして、必要なものを取得できる可能性があります。

「ほとんどすべてのデータで動作し、サポートされており、使い慣れたインターフェイスを備えている」アプローチを好む場合は、機能が導入されるまで待つ必要があるかもしれxlrdませんが、これはすぐには実現しません.

于 2010-04-30T00:59:48.350 に答える