1

Excelスプレッドシートを読み取り、データを検証してからSQLテーブルにマップするアプリケーションを開発しています。プロセスは、ストリームリーダーを介してファイルを読み取り、データを検証し、Excel スプレッドシートを手動で修正し、再度検証することです。すべてのデータが検証されるまで、このプロセスを繰り返します。

Excel スプレッドシートが開いている場合、ストリームリーダーを介してデータを読み込もうとすると、「別のプロセスで使用されているため、プロセスはファイルにアクセスできません。」というエラーが表示されます。毎回 Excel を開いたり閉じたりすることなく、ロックを解除したり、データをストリームリーダーに読み込む方法はありますか?

4

1 に答える 1

2

ストリームを取得するために呼び出すときFile.Openに、指定できるオーバーロードを使用していますFileAccessか?

http://msdn.microsoft.com/en-us/library/y973b725.aspx

パラメータに注意してください。

public static FileStream Open(
    string path,
    FileMode mode,
    FileAccess access,
    FileShare share
)

3 番目のパラメーターに渡しFileAccess.Readて、読み取り専用アクセスのみが必要であることを示すことができます。FileShare.Readまた、自分でファイルをロックするのではなく、他のユーザーがファイルを読み取り専用で開くことを許可するように設定する必要があります。MS Excel が FileShare.None でファイルを開くと、おそらくアクセスできないことに注意してください。

于 2010-04-28T15:09:17.083 に答える