shuhelohelo’s blog

Xamarin.Forms多めです.

他のプロセスで開かれているExcelファイルをClosedXMLで開く

ClosedXMLではExcelファイルを開くときに「ファイルのパスを指定して、かつ、読み取り専用で開く」オーバーロードがありません。

どうするかというと、FileStreamで読み取り専用で開き、そのストリームを使ってClosedXMLからExcelを開くことで実現できます。

//すでに開いているExcelファイルを開けるようにする
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
this._workBook = new XLWorkbook(fs,XLEventTracking.Disabled);