-3

モジュールを使用せずにExcelファイルを読み取ることはできますか?通常のファイルを読むように試したところ、バイナリ文字が出力されました。おそらくエンコーディングのせいですか?

ただし、csvファイルの読み取りは正常に機能しています。

4

3 に答える 3

9

Excelファイルはバイナリファイルであり、2007年以前のファイルの形式は明らかにかなり毛深いです。ファイルは実際にはzip形式のXMLであると思う.xlsxので、解凍すると人間が読める形式になるはずですが、試したことはありません。なぜモジュールを使いたくないのですか?

興味があれば、さらに読んでください。

http://joelonsoftware.com/items/2008/02/19.html
http://en.wikipedia.org/wiki/Office_Open_XML_file_formats

于 2012-06-14T02:24:27.737 に答える
6

モジュールを使用せずにExcelファイルを読み取ることはできますか?

理論的にはそうです。実際にはありません。

Excel XLSファイルは、バイナリファイル内のバイナリファイルです。最初のステップは、OLECOMドキュメントコンテナからExcelBIFFデータを解析することです。このデータは必ずしも順番に並んでいるとは限りません。

次に、Excel BIFFデータを解析して、バージョン間の違い、異なるエンコーディングの共有文字列テーブル、およびパーサーに不向きな方法で大きなデータレコードをマップするCONTINUEブロックを考慮に入れる必要があります。

Excel XLSX形式は、Zipコンテナ内のXMLファイルのコレクションであるため、少し簡単です。ただし、モジュールを使用していない場合でも、それでも問題が発生します。

Excelファイルを処理するPerlモジュールは、数百人時間の作業を表します。それらを回避するために、同様の量の作業を投資することを期待してください。

于 2012-06-14T08:36:36.007 に答える
5

そして、なぜモジュールを使用できないのですか?

Excelスプレッドシートがどのような形式であるかを理解し、そのためのコードを作成して、プログラムで使用することができます。たぶんそれをモジュールとして書いてCPANに提出してください。一瞬待って!そのようなモジュールはすでにあります!

CPANの全体的な目的は、車輪の再発明をする必要がないようにすることです。あなたはExcelスプレッドシートを読む必要があります、そして誰かがこれをする方法を理解するために大変な仕事をして、そしてあなたにそれを無料で与えています。$ 40,000の価値1、そしてそれは無料であなたのものです!CPANシステムにより、モジュールのインストールが非常に簡単になります。コマンドを実行しますcpan。何百時間もの作業を節約できるモジュールを避ける本当の理由はありません。

そして、どのタイプのモジュールを避けますか?それはすべてのモジュールですか、それとも標準ディストリビューションに含まれていないモジュールのみですか。ほとんどのPerlディストリビューションにデフォルトで含まれているにもかかわらず、モジュールであるという理由だけで、そのようFile::Copyなものを使用しないとは思いません。Data::Dumper


1チームを雇ってExcelファイルを変換するコードを記述し、Perlプログラムで読み取れるようにすることを想像してみてください。彼らは、ファイル形式の詳細を把握し、あらゆる種類のエッジケースのコードを作成し、あらゆる種類のテストを実行して、実際に機能することを確認する必要があります。グラフ、埋め込みコンテンツ、リモートデータアクセスなどを含めない場合の概算は約200工数ですが、これは実際に文書化されているためです。

于 2012-06-14T02:55:50.087 に答える