将数据写入Excel中的单元格,C#

将数据写入Excel中的单元格,C#,c#,excel,interop,C#,Excel,Interop,从Excel单元格中读取数据非常有效。但我在将新数据写入工作表3和单元格[8,2]时遇到问题。。如何修复此代码 我得到一个错误: System.Runtime.InteropServices.COMException: 文件不可用 但我可以使用其他按钮读取此文件 xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Open("C:\\Base.xls", 0, true, 5, "", "", true, Microsoft

从Excel单元格中读取数据非常有效。但我在将新数据写入工作表3和单元格[8,2]时遇到问题。。如何修复此代码

我得到一个错误:

System.Runtime.InteropServices.COMException: 文件不可用

但我可以使用其他按钮读取此文件

xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open("C:\\Base.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(3);

// range = xlWorkSheet.UsedRange;

//  Object[,] saRet;
//  saRet = (System.Object[,])range.get_Value(Missing.Value);

xlWorkSheet.Cells[8, 2] = "Salary";

xlWorkBook.Close(true, null, null);
xlApp.Quit();

releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);

不能将范围设置为字符串:

xlWorkSheet.Cells[8, 2] = "Salary"; 
尝试以下方法:

xlRange = (Excel.Range) xlWorkSheet.Cells[8, 2];
xlRange.Value = "Salary";

您的代码似乎很好。问题可能出在文件上

在Excel中打开文件。您是否看到任何写保护消息?确保您能够手动修改其内容并保存文件。试试看


我设置单元格内容的方式如下:

 xlWorkSheet.Cells[8, 2].Value = "Salary";

我正在使用Excel 2010

您正在以只读模式打开excel文件

xlApp.Workbooks.Open("C:\\Base.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
您正在将“可编辑”设置为false。这可能就是您无法编辑文件的原因

xlApp.Workbooks.Open("C:\\Base.xls", 0, false, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", true, false, 0, true, 1, 0);

请看一下代码中的这一行:

xlWorkBook = xlApp.Workbooks.Open("C:\\Base.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);

第三个参数定义您的文件应以只读方式打开。如果将其设置为true,则无法修改文件。我认为这就是为什么您会出现错误“文件不可用”。

您应该发布收到的错误。base.xls是否可能当前处于打开状态?否,我关闭了所有excel.exe,并且我还将“true”更改为“false”,因为ReadOnly为“true”。请确保您的进程具有文件的读取权限。确保没有其他不可见的“excel.exe”在后台运行,可以打开文件。你有管理权限吗?你可能是对的,但文件仍然不可用。xlWorkBook=xlApp.Workbooks.Open和write数据可能有问题?读取数据工作正常。使用Interop.Excel版本15,我可以使用
Sheet.Cells[x,x]=“data”
设置数据。如果我使用ASP.net实现此代码,是否可能?先生@Bcktr是的,我想可以。这个解决方案需要COM互操作,所以我想它不能与.NETCore一起工作