0

比較的大きな (80K 行) Excel ファイルで特定の行を検索するアプリケーションを C# (VS 2008) で作成する必要があります。通常は ADO.net を使用しますが、Windows Mobile はこれをサポートしていません。Excel を xml にエクスポートして linq で解析しようとしましたが、まだ遅いです。誰か提案はありますか?

4

1 に答える 1

2

Excel テーブルを CSV (Comma Seperated Values) 形式にエクスポートすることをお勧めします。

可能であれば、完全なファイルをロードし、Divide and Conquerを使用して検索を実行できます。

基本的に、その背後にある考え方は、探している値を含む列をアルファベット順にソートすることです。名前列内で「ピーター」という名前を探しています。それよりも、列の真ん中の値 (例: "malcom") を取得し、探している値がその中央の値の前後にあるかどうかを確認します。この場合、ソートのために「malcom」の後になるはずなので、テーブルを半分に分割し、テーブルの対応する半分で検索を続けます。テーブルに残りのレコードが一杯になるまで (10 としましょう)、通常の検索を実行して値を見つけるまで、これを再帰的に繰り返すことができます。

私はかつて私の最終論文でそのようなことをしました。私の実装は C++ で構築され、ハッシュテーブルを使用していました。エクセルより早かったです。

于 2013-06-27T06:50:28.320 に答える