2016-08-10 9 views
0

私は在庫切れフローでいくつかの記事を見ましたが、私が探しているものと見つからないものは、私にはうまくいかないようです。 Using OpenXmlReader行の要素タイプへのシートデータが決して開かないように見えるので、行は読み取られません。Microsoft Open XML SAXメソッドを行単位で使用し、セルデータを検索するExcelファイルを読み込みます

OpenXmlPartReaderを使用するSAXメソッドを使用する必要があります。私がやってみたいのは、Excelドキュメントを開いて行ごとに読むことです。各行について、インデックス番号またはIDとそのセル内の値のいずれかによって、2つのセルを取得する必要があります。だから、私は必要な細胞を知っているすべての細胞をループする必要はありません。

大きなファイルを読み込む必要があると予想されるため、SAXメソッドを使用してメモリ不足を回避したいと考えています。

答えて

1

私は同様の問題を解決することができました。 SOで見つかった関連する回答のいくつかを組み合わせた後、私は第1のシートからすべての行を抽出できるカスタムサックスリーダーを作成しました。

私のxlsx-sax-exporter githubプロジェクトを見て、それがどのようにあなたに役立つか教えてください。

読者はワークシートを開くのが非常に速く、構築するときにSheetDimensionsの参照をチェックすることによって寸法を計算します。

また、ワークブックのセルと番号の書式を確認した後で、数値と日付を書式設定することもできます。デフォルトの番号書式のケースをカバーしようとします。

リーダは、サーバ上でページングされた結果を抽出することをサポートしたいので、ページングを使用しています。サックスのストリーミングやメモリ使用量が低く抑えられているため、予想通り速く燃えています。メモリ内に行を保持せずにこれをベンチマークすると、10 MB(リリースビルド)以上は使用されません。

提案を変更した場合や、問題を開いたときにプルリクエストを送信してもらい、時間があるときには世話をします。

関連する問題