什么是Excel命名区域?
在Excel中,我们可以选中一个单元格或多个单元格区域,然后给它们取一个名字,换句话说就是给这个区域命名。为什么要创建命名区域呢,当然是为了简化数据操作,比如在公式中使用命名区域,可以让公式更加简洁、易懂。Excel中的命名区域可分为两种,一种是创建在工作表中的命名区域,一种是创建在工作薄中的命名区域,文中暂且称它们为局部命名区域和全局命名区域。
创建Excel命名区域
这篇文章主要介绍通过C#在Excel中创建命名区域,文中用到的组件是Spire.XLS,安装后,需要从安装目录Bin文件夹下引用Spire.Xls.dll文件到项目中。
创建局部命名区域
局部命名区域是指创建在一个指定的工作表中的命名区域,它只对该工作表有效,其它工作表中无法引用该命名区域。
//创建Workbook实例
Workbook workbook = new Workbook();
//加载Excel文件
workbook.LoadFromFile(@"Input.xlsx");
//获取第一张工作表
Worksheet sheet = workbook.Worksheets[0];
//定义第一个局部命名区域
INamedRange namedRange1 = sheet.Names.Add("Range1");
namedRange1.RefersToRange = sheet.Range["B2"];
//定义第二个局部命名区域
INamedRange namedRange2 = sheet.Names.Add("Range2");
namedRange2.RefersToRange = sheet.Range["C2"];
sheet.Range["D1"].Text = "合计";
//在公式中引用命名区域
sheet.Range["D2"].Formula = "=SUM(Range1,Range2)";
//保存文件
workbook.SaveToFile(@"局部命名区域.xlsx", ExcelVersion.Version2013);

创建全局命名区域
全局命名区域是指创建在工作薄中的命名区域,它对整个工作薄有效,也就是我们可以在工作薄的任意工作表中引用该命名区域。
//创建Workbook实例
Workbook workbook = new Workbook();
//加载Excel文件
workbook.LoadFromFile(@"Input.xlsx");
//获取第一张工作表
Worksheet sheet = workbook.Worksheets[0];
//定义第一个全局命名区域
INamedRange NamedRange1 = workbook.NameRanges.Add("Range1");
NamedRange1.RefersToRange = sheet.Range["B2"];
//定义第二个全局命名区域
INamedRange NamedRange2 = workbook.NameRanges.Add("Range2");
NamedRange2.RefersToRange = sheet.Range["C2"];
sheet.Range["D1"].Text = "合计";
//在公式中引用命名区域
sheet.Range["D2"].Formula = "=SUM(Range1,Range2)";
//保存文件
workbook.SaveToFile("全局命名区域.xlsx", ExcelVersion.Version2013);
总结
这两部分的代码生成的效果虽然一样,但是所创建的命名区域的作用范围却有所不同。创建命名区域大概就写这些内容,下一篇文章将介绍如何对现在的Excel命名区域进行重命名、隐藏名称和删除名称等操作,感谢阅读!