質問

XLS-Filesを読んでいるときにPyexceleratorを使用して問題があります。

私が書いたPythonスクリプトがいくつかあります。このライブラリを使用してXLSファイルを解析し、データベースを情報に入力します。

これらのスクリプトの解析ファイルのテンプレートは異なる場合があり、私はそれらを処理するためにスクリプトを再構成することがあります。テンプレートの1つで、私は問題に遭遇しました:pyexceleratorは例外を提起するだけです:

Traceback (most recent call last):
 File "/home/* * */parsexls.py",
line 64, in handle_label
   parser.parse()
 File "/home/* * */parsers.py", line 335, in parse
   self.contents = pyExcelerator.parse_xls(self.file_record.file,
self.encoding)
 File "/usr/local/lib/python2.6/dist-packages/pyExcelerator/ImportXLS.py",
line 327, in parse_xls
   ole_streams = CompoundDoc.Reader(filename).STREAMS
 File "/usr/local/lib/python2.6/dist-packages/pyExcelerator/CompoundDoc.py",
line 67, in __init__
   self.__build_short_sectors_data()
 File "/usr/local/lib/python2.6/dist-packages/pyExcelerator/CompoundDoc.py",
line 256, in __build_short_sectors_data
   dentry_start_sid, stream_size) = self.dir_entry_list[0]
IndexError: list index out of range

XLSファイルには空のシートが含まれていて、これらのシートの削除が含まれていましたが、空のシートがなくても多くのファイルを処理することはできません。これらのファイルには並外れたものは何もありませんが、それらには数式や写真が含まれていません - 文字列、数字、日付だけです。

私が見ることができるように、pyexceleratorは著者によって放棄されます:(

この問題を修正するための提案は非常に高く評価されています。

役に立ちましたか?

解決

Xlrdに試してみたいと思うかもしれません...それはPyexceleratorのフォークとして始まった(私が信じている)ので、組み込むにはコードの変更はほとんど必要ありませんが、積極的に維持されています。

http://pypi.python.org/pypi/xlrd

プロジェクトWebサイト

一般情報、ノートをリリースし、ドキュメントから履歴

他のヒント

私はXLRDの著者です。これ reads xlsファイルであり、何のフォークでもありません。 XLWTと呼ばれるパッケージを維持しています writES XLSファイルであり、Pyexceleratorのフォークです。 PyexceleratorのPARSE_XLS機能は、XLWTからの除去のポイントまで廃止されました。代わりにXLRDを使用します。

再現したトレースバックを考えると、ファイルが破損しているように見えます。それがそこでやっていることは、シートデータが解析される前に行われます。これらのファイルを生成するソフトウェアは何ですか? Excelまたはopenoffice.orgのcalcまたはgnumericでそれらを開くことはできますか? XLRDは、より意味のあるエラーメッセージを提供する場合があります。あなたは私を送ってください(insert_punctuation( 'sjmachin'、 'lexicon'、 'net'))故障ファイルのコピー。空のシートのないものといくつかを含めてください。ちなみに、空のシーツを削除するために何を使用していますか?空のシートでファイルを処理するとき、Pyexceleratorからどのようなエラーメッセージを受け取りますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top