网站首页 > java教程 正文
在前文中,我介绍过如何利用Java代码来合并Excel文档。今天这篇教程将讲解如何来拆分Excel工作表。拆分情况分为以下两种:
- 将一个Excel文档拆分成多个文档(源文档中的一个工作表为一个新文档)
- 将一个Excel工作表按照数据拆分为多个工作表。
测试环境
本教程用到了JDK, Intellij IDEA以及Free Spire.XLS for Java控件。在运行代码前,需将控件中的Jar包导入IDEA。可通过E-iceblue中文官网下载产品包,解压后将lib文件夹下的Spire.Xls.jar手动导入IDEA,或者是在Maven仓库下的pom.xml引用以下配置来导入产品。
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls.free</artifactId>
<version>3.9.1</version>
</dependency>
</dependencies>
代码示例
示例1 将一个Excel文档拆分为多个文档
以下是含有两个工作表的示例文档:
import com.spire.xls.FileFormat;
import com.spire.xls.Workbook;
public class SplitWorksheets {
public static void main(String[] args) {
//创建Workbook对象
Workbook wb = new Workbook();
//加载Excel文档
wb.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.xlsx");
//声明Workbook变量
Workbook newWb;
//声明String类型变量
String sheetName;
//指定拆分生成的文档的存放路径
String folderPath = "output/";
//遍历所有工作表
for (int i = 0; i < wb.getWorksheets().getCount(); i++) {
//初始化Workbook对象
newWb = new Workbook();
//删除默认工作表
newWb.getWorksheets().clear();
//将源文档中的指定工作表复制到新的Workbook
newWb.getWorksheets().addCopy(wb.getWorksheets().get(i));
//获取工作表表名
sheetName = wb.getWorksheets().get(i).getName();
//将新的Workbook保存为Excel文档
newWb.saveToFile(folderPath + sheetName + ".xlsx", FileFormat.Version2013);
}
}
}
拆分效果:
示例2 将一个Excel工作表按照数据拆分为多个工作表
示例文档如下:
import com.spire.xls.CellRange;
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class SplitWorksheetIntoMultiSheets {
public static void main(String[] args) {
//创建Workbook对象,加载Excel文档
Workbook bookOriginal = new Workbook();
bookOriginal.loadFromFile("C:\\Users\\Test1\\Desktop\\Test.xlsx");
//获取第一个工作表
Worksheet sheet = bookOriginal.getWorksheets().get(0);
//获取标题行
CellRange headRow1 = sheet.getCellRange(1, 1, 1, 6);
CellRange headRow2 = sheet.getCellRange(11, 1, 11, 5);
//获取两个数据区域
CellRange range1 = sheet.getCellRange(2, 1, 10, 6);
CellRange range2 = sheet.getCellRange(12, 1, 17, 5);
//添加一个工作表,命名为“Vendors”
Worksheet sheet2 = bookOriginal.getWorksheets().add("Vendors");
//将标题行1和数据区域1复制到“Vendors”工作表
sheet.copy(headRow1, sheet2, 1, 1, true, false);
sheet.copy(range1, sheet2, 2, 1, true, false);
//添加一个工作表,命名为“Country List”
Worksheet sheet3 = bookOriginal.getWorksheets().add("Country List");
//将标题行2和数据区域2复制到“Country List”工作表
sheet.copy(headRow2, sheet3, 1, 1, true, false);
sheet.copy(range2, sheet3, 2, 1, true, false);
//将第一个工作表中的列宽应用到新加的两个做工作表
for (int i = 0; i < sheet.getLastColumn(); i++) {
sheet2.setColumnWidth(i + 1, sheet.getColumnWidth(i + 1));
sheet3.setColumnWidth(i + 1, sheet.getColumnWidth(i + 1));
}
//保存文档
bookOriginal.saveToFile("output/SplitWorksheetIntoMultiSheets.xlsx", ExcelVersion.Version2016);
}
}
拆分效果:
猜你喜欢
- 2024-09-21 如何把excel表格处理成json数据(jason转excel)
- 2024-09-21 一个读Excel数据的小例子,提供给爱学习的Java后端开发
- 2024-09-21 快速将Excel、CSV等格式文件数据转换到java对象
- 2024-09-21 GitHub Star 8800+ 的阿里开源的 Java 解析 Excel 工具
- 2024-09-21 还在重复劳动?不如用Python自动生成Excel以邮件发送
- 2024-09-21 Java8如何让Excel的读写变得更加简单高效
- 2024-09-21 java打印Excel表格(java输出excel表格)
- 2024-09-21 整理关于java写入内容到excel的例子供大家参考
- 2024-09-21 JavaAPI开发(3)POI——如何将List转换为excel文件
- 2024-09-21 【Java程序】读取指定路径下文件夹中的文件名,生成Excel表格!
你 发表评论:
欢迎- 最近发表
-
- class版本不兼容错误原因分析(class更新)
- 甲骨文Oracle公司为Java的最新LTS版本做出改进
- 「版本发布」Minecraft Java开发版 1.19.4-pre1 发布
- java svn版本管理工具(svn软件版本管理)
- 我的世界1.8.10钻石在第几层(我的世界1.7.2钻石在哪层)
- Java开发高手必备:在电脑上轻松切换多个JDK版本
- 2022 年 Java 开发报告:Java 8 八年不到,开发者都在用什么?
- 开发java项目,选择哪个版本的JDK比较合适?
- Java版本选型终极指南:8 vs 17 vs 21特性对决!大龄程序员踩坑总结
- POI Excel导入(poi excel导入附件)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)