【问题标题】:spreadsheetgear - open/save file电子表格 - 打开/保存文件
【发布时间】:2014-11-05 21:45:06
【问题描述】:

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

【问题讨论】:

    标签: spreadsheetgear


    【解决方案1】:

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

    我可以告诉你的是,SpreadsheetGear 在读取和写入文件后不会打开任何文件流。文件流和文件锁定仅在读取/写入其内容所需的时间内打开,如果文件很小,这通常很短。换句话说,@".excel/test.xls" 应该在您的 Factory.GetWorkbook(...) 行执行后立即可写。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多