概述
Excel命名区域,即对指定单元格区域进行命名,以便对单元格区域引用,如在公式运用中可以引用指定命名区域进行公式操作。在创建命名区域时,可针对整个工作簿来创建,即workbook.getNameRanges阀门()(),在引用时该命名区域对整个工作簿有效,或者针对指定工作表来创建,即sheet.getNames阀门()(),在引用时仅对该命名区域所在工作表有效。此外,对Excel中已有的命名区域可对其进行重命名,重新设定单元格引用区域,设置隐藏或显示(注意这里设置的是命名区域的名称隐藏或显示,而非命名区域单元格,设置名称隐藏时,可起到保护引用数据来源的目的)以及删除等操作。下面将通过代码示例介绍操作方法。
<强>程序运行环境:强> Java,想法,jdk1.8.0,无需安装Microsoft Excel
<>强工具:强> (免费版)
<强> Jar获取及导入:>强通过 ,并解压将自由文件夹下的jar文件导入java程序。
参考如下罐导入效果:
Java代码示例
1。创建命名区域
,,1.1,全局命名区域
<>以前import com.spire.xls。*; ,import com.spire.xls.core.INamedRange; , ,public class NamedRange1  { ,,,,public static void main (String [], args), { ,,,,,,,,//创建实例,加载测试文档 ,,,,,,,,Workbook wb =, new 工作簿(); ,,,,,,,,wb.loadFromFile (“test.xlsx"); , ,,,,,,,,//获取第1个工作表 ,,,,,,,,Worksheet sheet1 =, wb.getWorksheets () . get (0); ,,,,,,,,//创建全局命名 ,,,,,,,,INamedRange namedRange1 =, wb.getNameRanges阀门()(“Range1"); ,,,,,,,,namedRange1.setRefersToRange (sheet1.getCellRange (“C2: C3")); ,,,,,,,,INamedRange namedRange2 =, wb.getNameRanges阀门()(“Range2"); ,,,,,,,,namedRange2.setRefersToRange (sheet1.getCellRange (“C4: C5")); , ,,,,,,,,//获取第2个工作表,在单元格公式中引用命名区域 ,,,,,,,,Worksheet sheet2 =, wb.getWorksheets () . get (1); ,,,,,,,,sheet2.getCellRange (“B1") .setFormula (“=(Range1 Range2)和“); , ,,,,,,,//保存文件 ,,,,,,,,wb.saveToFile (“NamadRange1.xlsx",, ExcelVersion.Version2013); ,,,,} ,}全局命名区域创建效果:
<强> 1.2局部命名区域强>
<>以前import com.spire.xls。*; ,import com.spire.xls.core.INamedRange; , ,public class NamedRange2  { ,,,,public static void main (String [], args), { ,,,,,,,,//创建实例,并加载测试文档 ,,,,,,,,Workbook wb =, new 工作簿(); ,,,,,,,,wb.loadFromFile (“test.xlsx"); , ,,,,,,,,//获取第1个工作表 ,,,,,,,,Worksheet sheet =, wb.getWorksheets () . get (0); , ,,,,,,,,//创建局部命名区域 ,,,,,,,,INamedRange namedRange1 =, sheet.getNames阀门()(“Range1"); ,,,,,,,,namedRange1.setRefersToRange (sheet.getCellRange (“C2: C3")); ,,,,,,,,INamedRange namedRange2 =, sheet.getNames阀门()(“Range2"); ,,,,,,,,namedRange2.setRefersToRange (sheet.getCellRange (“C4: C5")); , ,,,,,,,,//在公式中引用命名区域 ,,,,,,,,sheet.getCellRange (“C6") .setFormula (“=(Range1 Range2)和“); , ,,,,,,,,//保存文件 ,,,,,,,,wb.saveToFile (“NamedRange2.xlsx",, ExcelVersion.Version2013); ,,,,} ,}局部命名区域创建效果:
<强> 2。编辑已有命名区域强>
<>以前import com.spire.xls。*; ,import com.spire.xls.core.INamedRange; , ,public class ModifyNamedRange  { ,,,,public static void main (String [], args), { ,,,,,,,,//创建实例,加载测试文档 null null null null null null null null null null null null null null null null null null null null null null null null null