2017年2月26日日曜日

Excelから文字を抽出する方法

情報の漏洩防止ソフトMiharuPCを作りました

クリップボードから、MsOffice内に重要な情報が張付けられていないか監視するために、MsOfficeから文字を抽出するこ事をやっています。

その方法を紹介します、まずはExcelから

MsOfficeのファイルは複数のXMLファイルをZIPで固めた物です。 拡張子を「xlsx」から「zip」に変えるだけで、解凍できます。


「新規 Microsoft Office Excel 2007 ブック.xlsx」から「新規 Microsoft Office Excel 2007 ブック.zip」に変換した例を記します。





ディレクトリ「xl」内にシートと対応するXMLファイルがあります






sheet1の内容です


数値データは「sheet1.xml」内に直接保持しているのですが、文字列に関しては文字列データの番号のみを保持しています


文字列は「sharedStrings.xml」内に保持しています


「sharedStrings.xml」の内容です


文字列の番号はsharedStrings.xmlに保持していない様ですが、<si>タグのうえから0番、1番・・・と続いている様です。


以下MiharuPCの説明です

Excelのファイルを解析する為の良いライブラリーが出回っていますが、MiharuPcは主記憶常駐なので処理を軽くするために「System.Xml」を使って手作業でやりました

MiharuPCの「MSOF_OffiseDocument」がMicrosoftOfficeドキュメントを扱うクラスです。
「MSOF_ExcelDocument」はその下のExcel解析用で 、「MSOF_SheetDocument」は 「sheet*.xml」のラッピングクラスで「MSOF_ExcelString」は「sharedStrings.xml」のラッピングクラスです。

MsOfficeのバージョンは2007 2013 2016で確認しました

ソースリストはMiharuPCのホームページからダウンロードできます


0 件のコメント:

コメントを投稿