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

时间:2011-04-03 15:13:57

标签: 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.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);

5 个答案:

答案 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中打开文件。你看到任何写保护信息吗?确保您能够手动修改其内容并保存文件。试一试。

enter image description here

答案 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,这样您就无法修改文件。我认为这就是为什么你有一个错误"文件不可用"。