0

通过 C#/ASP.NET 网站,我使用 SpreadsheetGear 从模板打开文件,然后根据用户输入对其进行修改,然后将其保存到新位置。当我在保存后尝试手动打开新创建的文件时,我收到一条消息,指出 SpreadsheetGear 已锁定文件以进行编辑。

下面是代码片段:

SpreadsheetGear.IWorkbook workbook = SpreadsheetGear.Factory.GetWorkbook(pathToTemplate);
workbook.WorkbookSet.GetLock();
SpreadsheetGear.IWorksheet worksheet = workbook.Worksheets["sheetName"];
SpreadsheetGear.IRange cells = worksheet.Cells;

//fill in worksheet
...

workbook.SaveAs(pathToGeneratedFiles + exportFileName, SpreadsheetGear.FileFormat.XLS97);
workbook.WorkbookSet.ReleaseLock();

worksheet = null;
workbook.Close();
workbook = null;

在未显示的“填写工作表”部分中,我唯一能想到的甚至有点棘手的是删除一列并将其他列向左移动。

有什么想法吗?谢谢。

4

2 回答 2

1

您是否尝试过不使用 GetLock()?在进行 asp.net 编程时,通常不使用 GetLock()。根据网站文档

使用未附加到 SpreadsheetGear 中的任何 Windows 窗体组件的工作簿集时,无需使用 GetLock 和 ReleaseLock。

于 2012-03-27T16:15:42.997 回答
0

因此,它变成了我项目 bin 文件夹中的 SpreadsheetGear DLL 的旧副本。一旦我们更新它,问题就消失了。谢谢您的帮助。

于 2012-04-02T13:41:33.233 回答