c# - 插入数据后保存excel文件时出现问题

标签 c# excel

我想将数据写入现有的 excel 文件(我很容易做到) 但我无法保存对 excel 文件的更改(实际上我看到了 excel 文件的更改,但它似乎打开了,毕竟它出现了一些问题,例如“文件已经以相同的名称打开等等...... )

Excel.Application app= new Microsoft.Office.Interop.Excel.Application();
        Excel.Workbook appbook= app.Workbooks.Open(appxls, 0, true, 5, "", "", false, Excel.XlPlatform.xlWindows, "\t", true, false, 0, true, Missing.Value, Missing.Value);
        Excel.Sheets pages= appbook.Worksheets;
        Excel.Worksheet page= (Excel.Worksheet)pages.get_Item(1);

//...我更改了 excel 文件中的一些值并想保存它们: //appxls 是一个包含路径的字符串

 appbook.SaveAs(appxls, Excel.XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing,false, Type.Missing, Excel.XlSaveAsAccessMode.xlShared, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
    appbook.Close(true, Missing.Value, Missing.Value);
    app.Quit();

问题出在哪里,我该如何使用 Microsoft.interop 解决它。

最佳答案

您正在使用名为“appxls”的文件名以只读方式打开工作簿。 (Workbooks.Open方法的ReadOnly参数是第三个参数,你传入的是true。)

您稍后将使用 Workbook.SaveAs 方法,但您正尝试使用您用于打开工作簿的“appxls”变量所保存的完全相同的文件名来保存文件。这是一种覆盖您已打开的只读文件的尝试,因此会被阻止。

我可以看到两种可能的解决方案:

  1. Workbooks.Open 方法的 ReadOnly 参数传入 false,以便稍后使用 保存它>Workbook.Save 方法。在您的情况下,您可以通过调用 appbook.Save() 来保存它。

  2. 继续以只读方式打开文件,但是当您稍后使用 Workbook.SaveAs 方法时,您应该将其保存在不同 名称下。

希望这对您有所帮助!

关于c# - 插入数据后保存excel文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2574722/

相关文章:

c# - Unity 框架和多构造函数注入(inject)

c# - .NET TCP 服务器稳定性问题

mysql - .CopyFromRecordset 正在截断粘贴到 Excel 中的数据

c# - 将 'LoadfromCollection' 与包含另一个列表的列表一起使用

java - 使用 `>>` 之前检查模块的替代方法?

c# - 计算字符串 [] 中的子字符串出现次数

c# - WPF webbrowser - 下载 HTML?

c# - 如何使用 .net 或 vba 在 excel 中使用的范围末尾插入新行?

excel - 如何在excel的两列中排列重复的条目?

vba - 如何动态禁用和启用宏?