我想使用SpreadsheetGear更新现有的Excel文件。
我使用以下方法加载Excel文件:
_activeWorkbook = Factory.GetWorkbook(@"./excel/test.xls");
workbookView1.ActiveWorkbook = _activeWorkbook;
但是当我想保存它时:
private void menuSave_Click(object sender, EventArgs e)
{
workbookView1.GetLock();
try
{
_activeWorkbook.Save();
}
finally
{
workbookView1.ReleaseLock();
}
}
我收到此错误: System.IO.IOException:进程无法访问文件'C:... \ bin \ Debug \ excel \ test.xls',因为它正由另一个进程使用。< / em>的
答案 0 :(得分:0)
如异常所示,某些其他进程(或者可能是同一个应用程序,如果使用多个线程)会锁定文件,因此SpreadsheetGear无法将其保存回磁盘。任何其他外部进程都可能是罪魁祸首,例如防病毒软件扫描您的文件或在您尝试保存时在Excel中打开它。只有上面提供的信息无法确定确切的原因。
我可以告诉您的是,SpreadsheetGear在读取和写入文件后不会保持任何文件流打开。只有在读取/写入其内容时,文件流和文件锁才会打开,如果文件很小,通常会很短。换句话说,@&#34; .excel / test.xls&#34;应该在Factory.GetWorkbook(...)行执行后立即写入。