我试图更改格式在一个Excel文件中的所有指定范围,但我得到一个错误:“无法设置字体类的名称属性”。很抱歉,如果这已经被问,但我找不到任何。
这里是我的代码。我敢肯定,我只是失去了一些东西。
提前致谢!
Excel.Application xlsx = new Excel.Application();
Excel.Workbook wb = xlsx.Workbooks.Open(filepath, ReadOnly: false, Editable: true);
foreach (Excel.Name NamedRange in wb.Names)
{
//MessageBox.Show(NamedRange.Name.ToString());
NamedRange.RefersToRange.Cells.Font.Name = "Arial";
}
xlsx.Application.ActiveWorkbook.Save();
xlsx.Application.Quit();
xlsx.Quit();
当您看到类似于一个错误,它可能预示着细胞,在工作表或工作簿本身的保护。尝试手动选择的范围(在Excel中,不C#),并更改字体。我的猜测是,你会得到一个类似的错误。
有办法C#中取消保护,但朝这个方向之前,评估使用情况,看看有没有什么你正在尝试做的是有意义的。
或者,请检查的范围内执行命令之前的保护。同样的事情也给这应该工作。
if (!NamedRange.RefersToRange.Locked)
NamedRange.RefersToRange.Cells.Font.Name = "Arial";
在一个侧面说明,Excel有相当薄弱的保护(设计),有办法破解的保护。下面是一个例子: