我想修改和保存Excel中的数据。使用下面的代码,我正在访问表单,执行修改,然后保存文件。我无法保存该文件。这里是我的代码:无法保存Excel文件使用C#
Application excel = new Application();
excel.Visible=true;
Workbook wb = (Workbook)excel.Workbooks.Open(@"C:\Users\dnyanesh.wagh\Desktop\BookExcel1.xlsx");
Worksheet ws = (Worksheet)wb.Worksheets[1];
ws.Cells[1, 1] = "sagar";
ws.Cells[2, 1] = "sagar";
ws.Cells[3, 1] = "sagar";
wb.Save();
wb.close();
我收到此错误:“名为‘BookExcel1.xlsx’已经存在该文件在此位置是否要取代它?”
所以我改变了代码:
Workbook wb = (Workbook)excel.Workbooks.Open(@"C:\Users\dnyanesh.wagh\Desktop\BookExcel1.xlsx",0, false, 5, "", "",
false, XlPlatform.xlWindows, "", true, false,
0, true, false, false););
然后错误是:“BookExcel1.xlsx由user_name.open只读被修改”。如果单击“取消”按钮,我收到上面“从HRESULT异常:0x800A03EC”异常
我也曾尝试:
wb.SaveAs(@"C:\Users\dnyanesh.wagh\Desktop\BookExcel1.xlsx");
wb.Close(true,null,null);
从我收到同样的错误,与上面的文件显示修改。
任何人都可以告诉我如何保存修改的文件?
别t真的知道,但只是一个快速的想法......你确定可以用'SaveAs'使用相同的文件路径吗?通常这会创建一个新文档。有没有一个'Save()'函数,而不是你可以使用? – musefan
不要使其可见。 –
我没有看到你发布创建的COM对象。记住始终发布你创建/使用的每个Excel对象。如果出现错误并且未关闭工作簿,那么可能会保持打开状态,因此只能对新实例进行只读操作...更多:excel未关闭(使用'excel.Quit()'),因此可以执行大量Excel进程在内存中... – Marco