通过一个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;
在未显示的“填写工作表”部分中,我能想到的唯一一件事甚至有点棘手,那就是删除一列并将其他列左移。
有什么想法吗?谢谢。
发布于 2012-04-02 21:41:33
因此,它变成了我项目的SpreadsheetGear文件夹中的一个旧的DLL副本。一旦我们更新了它,这个问题就消失了。谢谢你的帮助。
发布于 2012-03-28 00:15:43
你有没有在没有使用GetLock()的情况下尝试过?在进行asp.net编程时,通常不使用GetLock()。根据the website docs的说法,
在使用未附加到SpreadsheetGear中的任何Windows窗体组件的工作簿集时,无需使用GetLock和ReleaseLock。
https://stackoverflow.com/questions/9892498
复制相似问题