クライアントは、Excel ファイルを Excel の HTML 形式で取得します (この形式で届きます。誰もそれを制御することはできません)。次に、ファイル内のデータに基づいてレポートを実行する必要があります。ADO.NET (OleDbReader) を使用すると、「外部ファイルが予期された形式ではありません」という例外が発生します。
データを通常の Excel 形式に変換すると、問題なく読み込まれます。しかし、これは彼らが取らなければならない余分なステップを課すことになり、彼らは最高の時でもコンピューターの知識があまりないため、実際には解決策ではありません.
私が思いついた唯一の解決策は、Excel オートメーションを使用して新しいスプレッドシートを作成し、同じデータを入力して、代わりにそれを読み取ることでした。しかし、ADO.NET はディスク上のファイルからしか読み取れないようです。もちろん、ファイルを保存して、使い終わったら削除することもできます (動作することを確認済みです)。しかし、私は彼らのファイルシステムをいじるという考えには不快です。だから私の最初の質問は - メモリ内の Excel ワークシートから DataTable を埋める方法はありますか?
さらに、自動化を使用したビジネス全体が好きではありません。それは信じられないほど遅いです。DataTable を埋めなくても、操作には 30 秒以上かかります。したがって、それを遅くする解決策は、何の役にも立たないでしょう。それは私の 2 番目の質問に私をもたらします - 私がここでしようとしていることを達成するためのより良い方法はありますか?