Excel命名区域,即对指定单元格区域进行命名,以便对单元格区域引用,如在公式运用中可以引用指定命名区域进行公式操作。在创建命名区域时,可针对整个工作簿来创建,即workbook.getNameRanges().add(),在引用时该命名区域对整个工作簿有效;或者针对指定工作表来创建,即sheet.getNames().add(),在引用时仅对该命名区域所在工作表有效。此外,对Excel中已有的命名区域可对其进行重命名、重新设定单元格引用区域、设置隐藏或显示(注意这里设置的是命名区域的名称隐藏或显示,而非命名区域单元格,设置名称隐藏时,可起到保护引用数据来源的目的)以及删除等操作。下面将通过代码示例介绍操作方法。

程序运行环境:Java、IDEA、jdk1.8.0、无需安装Microsoft Excel

工具:Free Spire.XLS for Java (免费版)

Jar获取及导入:通过官网下载,并解压将lib文件夹下的jar文件导入java程序。

参考如下jar导入效果:

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 Workbook();
wb.loadFromFile("test.xlsx"); //获取第1个工作表
Worksheet sheet1 = wb.getWorksheets().get(0);
//创建全局命名
INamedRange namedRange1 = wb.getNameRanges().add("Range1");
namedRange1.setRefersToRange(sheet1.getCellRange("C2:C3"));
INamedRange namedRange2 = wb.getNameRanges().add("Range2");
namedRange2.setRefersToRange(sheet1.getCellRange("C4:C5")); //获取第2个工作表,在单元格公式中引用命名区域
Worksheet sheet2 = wb.getWorksheets().get(1);
sheet2.getCellRange("B1").setFormula("=SUM(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 Workbook();
wb.loadFromFile("test.xlsx"); //获取第1个工作表
Worksheet sheet = wb.getWorksheets().get(0); //创建局部命名区域
INamedRange namedRange1 = sheet.getNames().add("Range1");
namedRange1.setRefersToRange(sheet.getCellRange("C2:C3"));
INamedRange namedRange2 = sheet.getNames().add("Range2");
namedRange2.setRefersToRange(sheet.getCellRange("C4:C5")); //在公式中引用命名区域
sheet.getCellRange("C6").setFormula("=SUM(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) {
//创建实例,加载测试文档
Workbook wb = new Workbook();
wb.loadFromFile("NamedRange1.xlsx"); //获取工作表
Worksheet sheet = wb.getWorksheets().get(0);
//获取全局命名区域
INamedRange namedRange = wb.getNameRanges().getByName("Range1");
//获取局部命名区域(对局部命名区域进行相关操作)
//INamedRange namedRange1 = sheet.getNames().getByName("Range1");
namedRange.setName("NewRange");//修改区域名称
namedRange.setRefersToRange(sheet.getCellRange("C2"));//修改单元格引用区域
namedRange.setVisible(false);//隐藏命名区域名称
//wb.getNameRanges().remove("Range2");//删除命名区域 //保存文档
wb.saveToFile("ModifyNamedRange.xlsx");
}
}

编辑效果:

(本文完)

Java 创建、编辑、删除Excel命名区域的更多相关文章

  1. C# 创建、更改Excel命名区域(NamedRange)

    创建命名区域是指给选定的某个单元格或多个单元格区域设置名称,目的是方便我们在文件中的其他地方对该单元格区域进行引用能够简化公式引用或者方便数据管理.下面记录了具体的C#示例代码.这里创建命名区域分为了 ...

  2. Java 添加、删除Excel表单控件

    通过表单控件,用户可以快速地将数据填写到模板文档中,轻松引用单元格数据并与其进行交互.本文通过Java代码示例介绍如何在Excel表格中添加表单控件,包括文本框.单选按钮.复选框.组合框.微调按钮等: ...

  3. linux初级学习笔记二:linux操作系统及常用命令,文件的创建与删除和命名规则,命令行展开以及linux中部分目录的作用!(视频序号:02_3)

    本节学习的命令:tree,mkdir,rmdir,touch,stat,rm 本节学习的技能:Linux中主要的目录作用以及特殊的目录文件: 文件的命名规则,命令行展开: 文件的创建与删除: Linu ...

  4. Excel命名区域的创建、修改、删除、命名

    因工作需要,需要用到 Excel实现多级下拉列表,这是预备知识! 链接地址:http://wenku.baidu.com/link?url=vHkAo25IXo6mabms-Jv0m3T7BRfAMg ...

  5. Java 创建、刷新Excel透视表/设置透视表行折叠、展开

    透视表是依据已有数据源来创建的交互式表格,我们可在excel中创建透视表,也可编辑已有透视表.本文以创建透视表.刷新透视表以及设置透视表的行展开或折叠为例,介绍具体的操作方法. 所需工具:Free S ...

  6. kafka入门2:java 创建及删除 topic

    1.pom <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.1 ...

  7. 一个java创建,删除,构建Jenkins等功能的JenkinsUtil工具类

    package com.vip.webpagetest.utils; import java.io.InputStream;import java.util.ArrayList;import java ...

  8. Hbase实验:java创建和删除table

    开启zookeeper.hadoop.hbase: 打开eclipse创一个java project,然后导入所需jar包: 写好java代码,运行create,然后去hbase shell里查看: ...

  9. 3、File类之创建、删除、重命名、判断方法

    一般我们调用内置类的方法,都是指调用其成员方法,故而以下几种方法都是File类的成员方法,常用的有以下3种, 分别是 //创建 public boolean createNewFile() publi ...

随机推荐

  1. 与项目欧拉速度比较:C vs Python与Erlang vs Haskell

    我从问题#12 ProjectEuler作为编程练习,并比较我在C,Python,Erlang和Haskell中的实现(当然不是最优)实现.为了获得更高的执行时间,我搜索了第一个有1000个以上因子的 ...

  2. 吴裕雄--python学习笔记:os模块函数

    os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'. os.getcwd:得 ...

  3. 吴裕雄--天生自然python编程:turtle模块绘图(2)

    #彩色螺旋线 import turtle import time turtle.pensize(2) turtle.bgcolor("black") colors = [" ...

  4. Flask向模板中JS传值简便方式

    后台传值: return render_template('statistics/numberofuserlogin/login_number.html', result_json = json.du ...

  5. 从假图片到假新闻,AI就这样“控制”了我们

    在评论某位新蹿红的明星时,围观群众总是习惯性地先从长相上来判定,如"像周润发和梁朝伟的合体"."刘德华和郭富城的合体"等--反正比"黄渤和王宝强的合体 ...

  6. 改变生活的移动计算——感受 MobiSys 2015

    MobiSys 2015" title="改变生活的移动计算--感受 MobiSys 2015"> 作者:微软亚洲研究院研究员 张健松 今年的MobiSys会议地点 ...

  7. 初识Mybatis之工程搭建

    简介:MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 ...

  8. [Golang]字符串拼接方式的性能分析

    本文100%由本人(Haoxiang Ma)原创,如需转载请注明出处. 本文写于2019/02/16,基于Go 1.11.至于其他版本的Go SDK,如有出入请自行查阅其他资料. Overview 写 ...

  9. 状态模式(State)-设计模式

    软件模式是将模式的一般概念应用于软件开发领域,即软件开发的 总体指导思路或参照样板.软件模式并非仅限于设计模式,还包括 架构模式.分析模式和过程模式等,实际上,在软件生存期的每一个阶段都存在着一些被认 ...

  10. Android多模块混淆的问题

    Android在多模块或者组件化的时候,关于混淆的管理,一般常见的做法就是两条. 把所有的混淆规则规则都放在app模块下面,由app统一管理.这样就会有一个问题,就是到会导致混淆规则的冗余. 由mod ...