Excel工作表只读和C#

时间:2017-08-07 14:37:43

标签: c# excel

我试图通过C#代码编辑Excel工作表,但Excel工作表给我一个错误,说只读

  

CS0200属性或索引器' Range.Text'无法分配 - 它是只读的

这是尝试访问工作表的代码。 代码:

//Load workbook
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"S:\Utils\documents\ServerManager\serverlist.xlsx");
Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1];
Excel.Range xlRange = xlWorksheet.UsedRange;

xlWorksheet.Range["D2"].Text = "Kelly Cooper";
xlWorksheet.Range["D2"].Style.Font.FontName = "Arial Narrow";
xlWorksheet.Range["D2"].Style.Font.Color = Color.DarkBlue;

在属性中,Excel工作表不是只读的,当我打开它进行编辑时,它不会提示我使用"这个文档是只读的,想要启用编辑。"我怎么能解决这个问题,Visual Studio不会因为它而编译。

这是Office365中的Excel。

1 个答案:

答案 0 :(得分:3)

您想使用.Value代替.Text

xlWorksheet.Range["D2"].Value = "Kelly Cooper";
xlWorksheet.Range["D2"].Style.Font.FontName = "Arial Narrow";
xlWorksheet.Range["D2"].Style.Font.Color = Color.DarkBlue;

如果您查看documentation,则可以看到文字只读

另外,如果您查看documentation,则可以看到“不是的值为只读”。

修改

您还可能需要将Open参数更改为:

Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(Filename: "path/to/file", ReadOnly: false);