spreadsheetgear - 打开/保存文件

问题描述:

我想使用SpreadsheetGear更新现有的Excel文件。spreadsheetgear - 打开/保存文件

我使用加载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',因为它正被另一个进程使用。

如异常情况所示,某些其他进程(或者如果您使用多个线程,可能是您的同一应用程序)锁定了您的文件,因此SpreadsheetGear无法将其保存回磁盘。任何其他外部进程都可能是罪魁祸首,比如反病毒软件扫描您的文件或在您尝试保存文件时在Excel中自行打开它。只有上面提供的信息无法确定确切原因。

我可以告诉你的是,SpreadsheetGear在读取和写入文件后不会保留任何文件流。只要读取/写入文件的内容,文件流和文件上的锁定都是打开的,如果文件很小,通常很短。换句话说,@“。excel/test.xls”应该在Factory.GetWorkbook(...)行执行后立即写入。