Java 创建、编辑、删除Excel命名区域
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命名区域的更多相关文章
- C# 创建、更改Excel命名区域(NamedRange)
创建命名区域是指给选定的某个单元格或多个单元格区域设置名称,目的是方便我们在文件中的其他地方对该单元格区域进行引用能够简化公式引用或者方便数据管理.下面记录了具体的C#示例代码.这里创建命名区域分为了 ...
- Java 添加、删除Excel表单控件
通过表单控件,用户可以快速地将数据填写到模板文档中,轻松引用单元格数据并与其进行交互.本文通过Java代码示例介绍如何在Excel表格中添加表单控件,包括文本框.单选按钮.复选框.组合框.微调按钮等: ...
- linux初级学习笔记二:linux操作系统及常用命令,文件的创建与删除和命名规则,命令行展开以及linux中部分目录的作用!(视频序号:02_3)
本节学习的命令:tree,mkdir,rmdir,touch,stat,rm 本节学习的技能:Linux中主要的目录作用以及特殊的目录文件: 文件的命名规则,命令行展开: 文件的创建与删除: Linu ...
- Excel命名区域的创建、修改、删除、命名
因工作需要,需要用到 Excel实现多级下拉列表,这是预备知识! 链接地址:http://wenku.baidu.com/link?url=vHkAo25IXo6mabms-Jv0m3T7BRfAMg ...
- Java 创建、刷新Excel透视表/设置透视表行折叠、展开
透视表是依据已有数据源来创建的交互式表格,我们可在excel中创建透视表,也可编辑已有透视表.本文以创建透视表.刷新透视表以及设置透视表的行展开或折叠为例,介绍具体的操作方法. 所需工具:Free S ...
- kafka入门2:java 创建及删除 topic
1.pom <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.1 ...
- 一个java创建,删除,构建Jenkins等功能的JenkinsUtil工具类
package com.vip.webpagetest.utils; import java.io.InputStream;import java.util.ArrayList;import java ...
- Hbase实验:java创建和删除table
开启zookeeper.hadoop.hbase: 打开eclipse创一个java project,然后导入所需jar包: 写好java代码,运行create,然后去hbase shell里查看: ...
- 3、File类之创建、删除、重命名、判断方法
一般我们调用内置类的方法,都是指调用其成员方法,故而以下几种方法都是File类的成员方法,常用的有以下3种, 分别是 //创建 public boolean createNewFile() publi ...
随机推荐
- revit安装未完成,某些产品无法安装的解决方法
revit提示安装未完成,某些产品无法安装该怎样解决呢?,一些朋友在win7或者win10系统下安装revit失败提示revit安装未完成,某些产品无法安装,也有时候想重新安装revit的时候会出现本 ...
- program files 和 program files 86
- UnitTest测试框架-操作步骤
一.UnitTest 1. TestCase 说明:测试用例 1.新建类并集成unittest.TestCase 2. TestSuite 说明:测试套件(多条用例) 方法: 1. 实例化 suite ...
- HexoC++第04课 构造析构.md
C++第04课 构造析构.mdhtml {overflow-x: initial !important;}#write, body { height: auto; } #write, #write h ...
- SWUST OJ 爬不出去的水井(0333)
爬不出去的水井(0333) Time limit(ms): 1000 Memory limit(kb): 65535 Submission: 1069 Accepted: 150 Descriptio ...
- springboot oauth 鉴权之——授权码authorization_code鉴权
近期一直在研究鉴权方面的各种案例,这几天有空,写一波总结及经验. 第一步:什么是 OAuth鉴权 OAuth2是工业标准的授权协议.OAuth2取代了在2006创建的原始OAuthTM协议所做的工作. ...
- Vue Zero · 啟
其实,一开始我应聘的是Spark,Hadoop这样的,然后后面呢,发现只有Java的业务给我写了,再后面我发现,公司招不到前端,所以前端要由后端来写,刺激!!! 数据驱动 首先要明白一个概念,那就是D ...
- Leetcode 206题 反转链表(Reverse Linked List)Java语言求解
题目描述: 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 迭代解 ...
- Typora+PicGo+Gitee笔记方案
前言:需要学习的知识太多,从一开始就在寻找一款能让我完全满意的编辑器,然而一直都没有令我满意的.在前两天Typora新版本更新后,总算是拥有了一套我认为很完美的笔记方案:使用Typora编写markd ...
- Jstorm执行task报错windows CONFIG SET protected-mode no
windows CONFIG SET protected-mode no报错说redis受保护模式,redis使用的是Redis-x64-3.2.100,参考博文说是redis3.2之后加入的特性, ...