C#读取和修改Excel单元格名称

本文关键字:单元格 Excel 修改 读取 | 更新日期: 2023-09-27 18:25:50

我正在使用Interop打开和读取Excel文件。

rangeBegin = templateWorksheet.get_Range(<special cell adressing goes on here>);

因此,很容易从单元格中得到值和公式,并对这些内容进行修改。现在困扰我的是如何读取和修改公式中使用的单元格名称,我可能需要添加/删除或更改命名单元格或它们的引用。

还无法找到这样做的方法,也找不到如何正确地做到这一点的信息。

感谢回答


欧元编辑:由于我没有得到足够的声誉,我不得不编辑问题以添加答案:(@KAJ:谢谢!)

访问名称的方法:

using Excel = Microsoft.Office.Interop.Excel;
Excel.Names tmp5 = workBook.Names;
addNews(tmp5.ToString());
addNews(tmp5.Count.ToString());
addNews(tmp5.Item(1).Name);
addNews(tmp5.Item(1).Index.ToString());
addNews(tmp5.Item(1).RefersTo);

其中"addNews"是一个函数,它在一个可以轻松复制到剪贴板的列表中为我提供调试输出。(格式化加上日期和时间信息)

C#读取和修改Excel单元格名称

计算稍微模糊的Excel API的常用方法是记录宏,然后查看它生成的代码。

这样命名一个细胞后,它确实做到了:

ActiveWorkbook.Names.Add Name:="myCell", RefersToR1C1:="=Sheet1!R10C5"

因此,通过interop 可能存在类似的情况