比較的大きな (80K 行) Excel ファイルで特定の行を検索するアプリケーションを C# (VS 2008) で作成する必要があります。通常は ADO.net を使用しますが、Windows Mobile はこれをサポートしていません。Excel を xml にエクスポートして linq で解析しようとしましたが、まだ遅いです。誰か提案はありますか?
質問する
377 次
1 に答える
2
Excel テーブルを CSV (Comma Seperated Values) 形式にエクスポートすることをお勧めします。
可能であれば、完全なファイルをロードし、Divide and Conquerを使用して検索を実行できます。
基本的に、その背後にある考え方は、探している値を含む列をアルファベット順にソートすることです。名前列内で「ピーター」という名前を探しています。それよりも、列の真ん中の値 (例: "malcom") を取得し、探している値がその中央の値の前後にあるかどうかを確認します。この場合、ソートのために「malcom」の後になるはずなので、テーブルを半分に分割し、テーブルの対応する半分で検索を続けます。テーブルに残りのレコードが一杯になるまで (10 としましょう)、通常の検索を実行して値を見つけるまで、これを再帰的に繰り返すことができます。
私はかつて私の最終論文でそのようなことをしました。私の実装は C++ で構築され、ハッシュテーブルを使用していました。エクセルより早かったです。
于 2013-06-27T06:50:28.320 に答える