CAD日記

主にAutoCADのことについて書いているけど、近頃は投資系ネタに注力している。自動売買、仮想通貨、PC関係、プログラミングなど。@caddiary

コンピュータ全般

Office系アプリのデータからテキスト抽出する

投稿日:

Office系アプリとは言わずと知れたWordやExcelなわけで、doc/docx/xls/xlsx/ppt/pptxとあいなる。こいつらはバイナリなので、テキストを抽出するためのやり口はいくつかある。

【独自解析系】
xdoc2txtなるフリーソフト。Office系のみならず、一太郎やOpenOfficeなど様々な商用アプリのデータに対応しており、またPDFやhtmlまで対応しているってんだからスゲー。惜しむらくは、2020年6月に更新されて以来、約2年半更新がストップしていること。VCランタイムを2010から新しいものに更新して、もうやるべきことはやったという感じなのだろうか。2002年から開発を始めていて20年の月日が経過しているので、作者としてはそろそろいい年齢で、気力と体力が低下しているのかもしれない。
作者のhishidaさんは、EBシリーズという名の電子書籍・電子辞書を作成するためのツール集の開発も行っており、こっちがメインのようにも感じる。
話をxdoc2txtに戻す。ファイル比較ソフトのWinMergeのプラグインとしてxdoc2diffがあり、おいらも重宝して使っていた。WinMergeの64bit版ではxdoc2diffが動作しないらしく、この点は残念なこと。じゃーどうするのかってことで次の話に移る。

【COMでアプリにやらせる系】
WinMergeの標準プラグインとして存在するのがCompareMSExcelFilesなど(他にWord用、PowerPoint用もあり)。拡張子sctでコードを確認したところ、CreateObject(“Excel.Application”)という記載があったため、COMでアプリを起動してテキストアウトしていることがわかった。つまりWordやExcelがインストールされている必要があるということで、独自解析系に比べると処理に時間がかかるはず。ただ、アプリにやらせているから抽出結果の正確性が高い。WinMergeの用途から言って、COMでやらせることは妥当であり、リッチクライアントで閉じた世界でやるから問題ない。サーバーで高速に処理する必要があって、サーバーにWordやExcelなんて入ってねぇぜという環境においては、独自解析系になるだろう。

【MicrosoftのIFilter】
本家が提供しているテキスト抽出エンジン。本家なんで安定していてサポートもしっかりしているのだろう。ビジネス用途ならこれの一択。ただ、本流の製品でもなくサーバー側の地味なものなので、頻繁な更新はされておらず、サポート期限が切れるの切れないのという話がある模様。クラウド利用がうんちゃら。。このあたりはよくわからん。そのうち調べてみるかも。

-コンピュータ全般

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

IXY

デジカメ購入。 3台目のIXY。 IXY DIGITAL 900IS 今回の決め手は、手ぶれ補正。 前回購入機種(L3)とくらべると、ややコンパクトさに欠けるが、 手ぶれ補正や顔追随(フェイスキャッチ …

no image

Office2010

衝動的にOfficeを2007にしてから4ヵ月が経過して、 巷にはOffice2010が出回り始めた中、 社版で激安のアップグレード版Office2010があることを知り、 一度も買ったことのない社版 …

no image

イマドキのPCにパラレルポートを追加するなんて時代錯誤なことをするのはナゼか

ヨドバシで買ったのは玄人志向の1P-LPPCIE2(パラレルインターフェースボード)3150円(10%ポイント還元)。 対応OSはWindows 8までって書いてあったからWindows 10でもイケ …

PDFダブルクリックが遅い件

エクスプローラからPDFをダブルクリックすると30秒くらい待たされてイライラすることが最近よくある。そんなの待ってられないから別のことをやっていると、忘れたころにAdobe Readerが起動してくる …

no image

肩痛、桜

どうも肩が痛い。 左だけ。 思い当たるふしはある。 睡眠時、左を向いて横向きになっていることが多い。 (実際、寝ているときはどうなっているかわからないが、  眠りに入るまでの姿勢がそうなっていることが …