0

ADO.net と ExcelReader を介して Excel ファイルを快適に読み取ることができますが、(他のアプリケーションによって) データがストリーミングされている Excel ファイルを読み取る必要があり、そのデータがハード ディスクに保存されていません。

問題は、ファイルストリームがハードディスクに保存されているファイルのコンテンツを読み取ることです:(しかし、ここではデータはハードディスクに保存されません

タスク一覧

1)abc.exeという名前のexe(サードパーティのexe、私はそれを制御できません)が1秒ごとにtemp.xlsという名前のExcelにデータを書き込んでおり、このExcelファイルが開いています。このデータは Excel で見ることができますが、そのデータはハードディスクに保存されていません。abc.exe は、単にデータを見ることができるデータを表示するためだけに Excel を使用しています。

2) Excel からデータを読み込もうとしていますが、そのデータはハードディスクに保存されていないため、ファイル ストリーム クラスの助けを借りて読み取ることができません。

3)この開いたExcelファイルから、ハードディスクではなくメモリから直接C#でデータを読み取ることができる手法を探しています。

読むことは可能ですか?

私を助けてください

4

2 に答える 2

0

あなたが従うことができるアプローチがあります:

  1. 標準的な方法でreadonlyフラグを指定してtemp.xls開きます: Workbooks.Open メソッド
  2. データに対して特性を実行します。コンテンツを別のワークブックにコピーする Peraphs。
  3. FileSystemWatcher クラスを使用してtemp.xls の変更を検出し、最初のポイントとして再度開きます

もう 1 つの便利な方法は、abc.exe からプロセスの終了を検出することです。おそらく、プロセスのテーブルに temp.xls が存在しないかabc.exeが存在しないことを検出することによってのみです( ManagementEventWatcher Classを介して)。

とにかく、この時点で、temp.xlsを通過するすべてのものを盗聴する必要があります。

于 2013-08-20T21:24:41.867 に答える