キーワードによりExcelファイルを全文検索する

C#.net

キーワードによりExcelファイルを全文検索する

Windows 10 / Visual Stadio Community 2019 / .NET Framework 4.7.2
指定した検索語がセルまたは図形に入力されているExcelファイルをシート単位またはファイル単位で検索し、結果を一覧表に表示する。表示項目は、フォルダ名、ファイル名、シート名、ヒット数。検索とは関係ないが、ファイルの属性としてファイルサイズ、図形の数も表示する。
列のヘッダをクリックすればその列の値の大小によりレコードをソートする。レコードを選択しコンテキストメニューの「ファイルを開く」で Excelが開く。
複数語には空白で分割した複数の語を指定することができる。検索条件の設定により AND検索または OR検索を行う。
[image1] s

検索条件の設定

設定フォームから検索条件を設定する
[image2]

検索単位

検索結果の集計をシートごとに行うか、ファイルごとに行うかを指定する。

複数検索語を指定した場合の検索方法

AND検索とOR検索の場合は、検索語の文字列を空白で分割し、複数の検索語を求める。「AND検索」は、ファイルに指定された複数の検索語が全て含まれていた場合は真となる。「OR検索」は、ファイルに指定された複数の検索語のうち一つでも含まれていた場合は真となる。「文字列をそのまま検索」は、指定されたテキストを空白も含めそのまま検索に使う。

大文字小文字を区別する。

アルファベットの Case Sensitiveの指定と同じ

並列タスク数の選択

1 or 10 のいずれかを選べるが、基本的には10を指定する。 10を指定すると検索処理を10タスクに分割し、サブスレッドにより並行して実行する。直列な処理に比べ処理時間が短縮できる。1は直列処理となる。

検索フォルダ

XMLファイルを作成したフォルダを指定する。

設定および状態の保存

検索条件の設定値および、ウィンドウの大きさ、一覧表の列の幅、および対象フォルダのパス名はウィンドウを閉じたときに保存される。次にウィンドウを開いたときはその状態から再開する。アプリケーションのプロパティ設定機能を利用する。

処理方式

Excelシートからテキストを抽出するでは Excelファイルからテキストを抽出し、XMLファイルに保存している。本アプリケーションはこのテキストに対して全文検索を行う。
赤枠の部分が、本章で解説する検索処理。
[image8]

ソースコード

Form1.cs メインフォーム
Form2.cs 検索本体・プログレスバー
FormSettings.cs 検索条件の設定フォーム
UADataGridView.cs 検索結果一覧(データグリッドビュー)
SearchSettings.cs 設定情報(シングルトンクラス)
OfficeInfo.cs XMLレコード定義