从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);
答案 0 :(得分:5)
我设置单元格内容的方式如下:
xlWorkSheet.Cells[8, 2].Value = "Salary";
我正在使用Excel 2010.
答案 1 :(得分:1)
您无法将范围设置为字符串:
xlWorkSheet.Cells[8, 2] = "Salary";
尝试类似:
xlRange = (Excel.Range) xlWorkSheet.Cells[8, 2];
xlRange.Value = "Salary";
答案 2 :(得分:0)
您的代码似乎没问题。问题可能在于文件。
在Excel中打开文件。你看到任何写保护信息吗?确保您能够手动修改其内容并保存文件。试一试。
答案 3 :(得分:0)
您正在以只读模式打开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);
答案 4 :(得分: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,这样您就无法修改文件。我认为这就是为什么你有一个错误"文件不可用"。