Spreadsheet::ParseExcel を使った excel フィルタ2006年02月08日 15時13分20秒

Spreadsheet::ParseExcel を使うと Excel の本文テキスト抽出が可能です。
xlhtml の代わりに使うには良いかもしれません。

Excel5, Excel95, Excel97, Excel98 のテキストを統一的に処理するには

$ perl sample/dmpExU.pl CP932 file | nkf -Se

と、しなければなりませんでした。
(UTF-8 や EUC-JP を指定したら文字化け)

$ perl sample/dmpExU.pl CP932 excel5.xls | nkf -Se
=========================================
FILE :/backup/work/HEAD/namazu/tests/data/ja/excel5.xls
COUNT :3
AUTHOR:情報システム部
--------- SHEET:Sheet1
( 0 , 0 ) =>Namazu は手軽に使えることを第一に目指した日本語全文検索システムです。このファイルはテスト用です。
( 2 , 0 ) =>test@namazu.org
--------- SHEET:Sheet2
--------- SHEET:Sheet3

$ perl sample/dmpExU.pl CP932 excel98.xls | nkf -Se
=========================================
FILE :/backup/work/HEAD/namazu/tests/data/ja/excel98.xls
COUNT :3
AUTHOR:乗越洋一
--------- SHEET:Sheet1
( 0 , 0 ) =>Namazu は手軽に使えることを第一に目指した日本語全文検索システムです。このファイルはテスト用です。
( 2 , 0 ) =>test@namazu.org
--------- SHEET:Sheet2
--------- SHEET:Sheet3

十分です。dmpExU.pl を参考にすれば簡単にフィルタは作れるでしょう。


ところで、プロパティの取得はできません(AUTHORのみ可)。
これは xlhtml も同様です。現在は wvWare の wvSummary を使っています。

wvSummary の代わりに OLE::Storage_Lite で実装するのは良いかもしれません。そのものずばりではありませんが、taro7_10.pl には、一太郎のプロパティを取り出す処理が含まれていますので、これを参考にすれば作ることはできるでしょう。

コメント

_ usu ― 2006年02月08日 21時25分13秒

Spreadsheet::ParseExcel を使った filter は
http://www.namazu.org/ml/namazu-users-ja/msg02327.html
大分前から contrib に入っているようです。
結構シンプルなソースなので検証して標準で使えるように
すると良いと思います。

_ opengl2772 ― 2006年02月09日 06時08分29秒

contrib に入っていましたか。
このフィルタはさすがに古くて手直しも必要なのですが、既に別のフィルタを作成しましたので、HEAD には spreadexcel.pl を追加するかもしれません。

これを作っていて気づいたのですが、Spreadsheet::ParseExcel にしろ xlhtml にしろ xdoc2txt にしろ、セルに設定された種類によっては正しい値が取り出せないという問題がありました。
やはり、OLEコントロールフィルタの代わりには使えませんね...。

_ opengl2772 ― 2006年02月09日 10時38分30秒

ちょっと古いのですが doccat 3.00 で試してみましたが、こちらもセルに設定された種類によっては正しい値が取り出せないという結果になりました。

Excel あなどりがたし...。

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://namazu.asablo.jp/blog/2006/02/08/245698/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。