spreadsheetgear - 打开/保存文件

时间:2014-11-05 08:42:41

标签: spreadsheetgear

我想使用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>的

1 个答案:

答案 0 :(得分:0)

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

我可以告诉您的是,SpreadsheetGear在读取和写入文件后不会保持任何文件流打开。只有在读取/写入其内容时,文件流和文件锁才会打开,如果文件很小,通常会很短。换句话说,@&#34; .excel / test.xls&#34;应该在Factory.GetWorkbook(...)行执行后立即写入。