C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ありがとうございました。


(過去ログ 136 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■80140 / inTopicNo.1)  ClosedXMLで使用中のファイルを開く場合について
  
□投稿者/ あべ (1回)-(2016/06/16(Thu) 00:30:13)

分類:[C#] 

ClosedXMLでファイルの内容を読み取っているのですが、
そのファイルが使用中の場合、内容を読み取れません。

読み取り専用モード等があればいいのですが、見つかりません。
どのようにしたら良いでしょうか。



ファイルが使用中の場合、次のコードでプロシージャが終了してしまうようです。
XLWorkbook workbook = new XLWorkbook("ファイル名");
引用返信 編集キー/
■80145 / inTopicNo.2)  Re[1]: ClosedXMLで使用中のファイルを開く場合について
□投稿者/ Hongliang (434回)-(2016/06/16(Thu) 08:51:26)
先行してファイルを開いているプログラムが、後続プログラムの読み取りを許可してファイルを開いているのなら、FileStreamでFileAccess.Readを指示してファイルを開き、そのFileStreamをファイル名の代わりにnew XLWorkbookに渡すことでいけると思います。
先行してファイルを開いているプログラムが、後続のプログラムの読み取りを拒否してファイルを開いているのなら、ちょっと難しいでしょう。
引用返信 編集キー/
■80147 / inTopicNo.3)  Re[2]: ClosedXMLで使用中のファイルを開く場合について
□投稿者/ あべ (2回)-(2016/06/16(Thu) 09:45:30)
ありがとうございます。
試してみます。
引用返信 編集キー/
■80148 / inTopicNo.4)  Re[3]: ClosedXMLで使用中のファイルを開く場合について
□投稿者/ あべ (3回)-(2016/06/16(Thu) 10:00:10)
試してみましたが、駄目でした。

>先行してファイルを開いているプログラムが、後続のプログラムの読み取りを拒否してファイルを開いているのなら、ちょっと難しいでしょう。

エクセルファイルは、Exelで起動している可能性があるだけなので、その心配はないです。


ブックを開いていないときはセルの内容を読み取れますが、
ブックを開いている時は、ファイルストリームの作成で失敗するようです。



//ファイルストリーム作成
FileStream fs = new FileStream(FileName,FileMode.Open, FileAccess.Read);//ここで失敗
//読み取り専用で開きたい
XLWorkbook workbook = new XLWorkbook(fs,XLEventTracking.Disabled);
引用返信 編集キー/
■80149 / inTopicNo.5)  ありがとうございました。
□投稿者/ あべ (4回)-(2016/06/16(Thu) 10:04:41)
2016/06/16(Thu) 10:06:50 編集(投稿者)
2016/06/16(Thu) 10:06:41 編集(投稿者)

できました!

FileStreamの引数に、「FileShare.ReadWrite」が足りなかったようです。

ありがとうございました。

//ファイルストリーム作成
FileStream fs = new FileStream(FileName,FileMode.Open, FileAccess.Read,FileShare.ReadWrite);
//読み取り専用で開く
XLWorkbook workbook = new XLWorkbook(fs,XLEventTracking.Disabled);

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -