次のコードでExcelシートを読んでいます:
Excel.Range uRange = xlWorkSheet.UsedRange;
dynamic data = uRange.Value2;
ご覧のとおり、使用した範囲セルの値を動的 2D 配列にコピーします。選択した範囲の 1 つの列はカスタム形式であり、上記のテクニックを使用すると、このカスタム形式のセル (data[x,y]) にアクセスすると、適切な形式の値ではなく、一連の数値が得られます。
次のコードで特定のセルのみに直接アクセスしている場合:
(Excel.Range)xlWorkSheet.Cells[x, y].Text
...必要なフォーマットされた値を確認できます。各セルに個別にアクセスすることで、ループ内のセルごとにアクセスするのが遅くなるため、多くの時間を失っています。
選択した範囲からすべてのテキスト値を取得することは可能ですか? このようなもの:
Excel.Range uRange =xlWorkSheet.UsedRange;
dynamic data = uRange.Text;
上記のコードを使用すると、空の変数が取得されます。