我试图通过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。
答案 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);