创建命名区域是指给选定的某个单元格或多个单元格区域设置名称,目的是方便我们在文件中的其他地方对该单元格区域进行引用能够简化公式引用或者方便数据管理。下面记录了具体的C#示例代码。这里创建命名区域分为了2种情况,分别对应不同的添加方法以及命名区域的引用范围,即:
1. 全局命名区域(方法:workbook.NameRanges.Add() )
2. 局部命名区域(方法:sheet.Names.Add () )
同时,对于Excel表格中已有的命名区域,可通过方法进行修改或者删除,包括
使用工具:Free Spire.XLS for .NET(免费版)
注:下载Free Spire.XLS后解压安装,在编辑代码时,注意在程序中添加引用Spire.Xls.dll(如下图),dll文件在安装路径下的Bin文件夹中获取。
代码示例
【示例1】创建Excel命名区域
步骤 1:加载文档,获取工作表
//创建Workbook类的实例,加载文档 Workbook workbook = new Workbook(); workbook.LoadFromFile("test.xlsx"); 获取第1张工作表 Worksheet sheet = workbook.Worksheets[0];
步骤 2:创建命名区域
定义第一个全局命名区域 INamedRange NamedRange1 = workbook.NameRanges.Add(第1批次入库量");此方法定义的命名区域,引用时可适用于整个工作簿 INamedRange NamedRange1 = sheet.Names.Add("第1批次入库量");此方法定义的命名区域,引用时仅适用于命名区域所在工作表 NamedRange1.RefersToRange = sheet.Range[G3:G7]; 定义第二个全局命名区域 INamedRange NamedRange2 = workbook.NameRanges.Add(第2批次入库量); INamedRange NamedRange2 = sheet.Names.Add("第2批次入库量"); NamedRange2.RefersToRange = sheet.Range[G8:G12"];
步骤 3: 在公式中引用命名区域
指定单元格写入文本 sheet.Range[A14"].Text = 入库量合计; 在公式中引用命名区域 sheet.Range[B14"].Formula = =SUM(第1批次入库量,第2批次入库量)";
步骤 4:保存文档
workbook.SavetoFile(result.xlsx",ExcelVersion.Version2013);
创建效果:
全部代码:
using Spire.Xls; Spire.Xls.Core; namespace CreateNamedRange_XLS { class Program { static void Main(string[] args) { 创建Workbook实例 Workbook workbook = Workbook(); 加载Excel文件 workbook.LoadFromFile(); 获取第1张工作表 Worksheet sheet = workbook.Worksheets[0]; 定义第一个全局命名区域 INamedRange NamedRange1 = workbook.NameRanges.Add(此方法定义的命名区域,引用时可适用于整个工作簿 此方法定义的命名区域,引用时仅适用于命名区域所在工作表 NamedRange1.RefersToRange = sheet.Range[定义第二个全局命名区域 INamedRange NamedRange2 = workbook.NameRanges.Add(); INamedRange NamedRange2 = sheet.Names.Add("第2批次入库量"); NamedRange2.RefersToRange = sheet.Range[指定单元格写入文本 sheet.Range[; 在公式中引用命名区域 sheet.Range[保存文档 workbook.SavetoFile(,ExcelVersion.Version2013); System.Diagnostics.Process.Start(); } } }
【示例2】更改Excel命名区域
步骤 1:加载文档,获取工作表
创建文档,加载测试文件 Workbook wb = Workbook(); wb.LoadFromFile(sample.xlsx获取第一张工作表 Worksheet sheet = wb.Worksheets[0];
获取表格中的指定命名区域 INamedRange namedRange = wb.NameRanges.GetByName(适用于全局命名区域(整个工作簿) INamedRange namedRange = sheet.Names.GetByName("第2批次入库量");适用于局部命名区域(指定工作表) 修改指定命名区域的名称 namedRange.Name = newrange; namedRange.RefersToRange = wb.Worksheets[0].Range[]; namedRange.RefersToRange = sheet.Range["G3:G7"];
namedRange = wb.NameRanges.GetByName(); namedRange.Visible = false;
步骤 4 :删除命名区域
wb.NameRanges.Remove(RangeNamesheet.Names.Remove("RangeName");
步骤 5:保存文档
wb.SavetoFile(newresult.xlsx![]()
修改结果:
全部代码:
View CodeModifyNameRange_XLS { 创建文档,加载测试文件 Workbook wb = Workbook(); wb.LoadFromFile(获取第一张工作表 Worksheet sheet = wb.Worksheets[获取表格中的指定命名区域 INamedRange namedRange = wb.NameRanges.GetByName(适用于全局命名区域(整个工作簿) 适用于局部命名区域(指定工作表) 修改指定命名区域的名称 namedRange.Name = ; namedRange.RefersToRange = wb.Worksheets[]; namedRange.RefersToRange = sheet.Range["G3:G7"]; 获取指定命名区域,并设置区域名称隐藏 namedRange = wb.NameRanges.GetByName(); namedRange.Visible = false删除文档中的指定命名区域的名称 wb.NameRanges.Remove(sheet.Names.Remove("RangeName"); 保存文档 wb.SavetoFile(stem.Diagnostics.Process.Start(); } } }
(本文完)
如需转载,请注明出处!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。