入力として列番号と行番号を使用して、xlrd で Excel セルの値を読み取ることができました。ここで、.ods 形式で保存されたいくつかのスプレッドシートで同じセル値にアクセスする必要があります。
たとえば、.ods ファイルのセル E10 に格納されている値を Python で読み取るにはどうすればよいでしょうか。
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-cell
number-columns-spanned
number-rows-spanned
table:table-row
タグには属性がある場合がありますnumber-rows-repeated
。これは、空でない行全体の内容を繰り返すために使用できますが、複数の連続した空の行がある場合に最もよく見られます。
したがって、「自分のデータで動作する」というアプローチに満足したとしても、それは些細なことではありません。
ODFpyを見たいと思うかもしれません。2 番目のセンテンスに注意してください: """他のより便利な API とは異なり、これは本質的に XML 形式のすぐ上にある抽象化レイヤーです。""" ODF-to-HTML スクリプトがあります。 ODT の場合) をハッキングして、必要なものを取得できる可能性があります。
「ほとんどすべてのデータで動作し、サポートされており、使い慣れたインターフェイスを備えている」アプローチを好む場合は、機能が導入されるまで待つ必要があるかもしれxlrd
ませんが、これはすぐには実現しません.