Java 复制Excel工作表
本文归纳了关于Java如何复制Excel工作表的方法,按不同复制需求,可分为:
1. 复制工作表
1.1 在同一个工作簿内复制工作表
1.2 在不同工作簿间复制工作表
2. 复制指定单元格数据
对于复制方法copy(),这里简单整理了一个表格,其中包含了对数据复制的不同应用需求,可参考使用:
方法 |
解释 |
copyFrom(Worksheet worksheet) |
复制自源工作表的数据 |
copy(CellRange sourceRange, CellRange destRange) |
复制源数据到目标数据范围 |
copy(CellRange sourceRange, CellRange destRange, Boolean copyStyle) |
复制源数据到目标数据范围时,是否复制源数据样式 |
copy(CellRange sourceRange, Worksheet worksheet, int destRow, int destColumn) |
复制源数据到目标工作表中的指定行和列 |
copy(CellRange sourceRange, Worksheet worksheet, int destRow, int destColumn, Boolean copyStyle) |
复制源数据到目标工作表中的指定行和列时,是否复制源数据样式 |
copy(CellRange sourceRange, CellRange destRange, Boolean copyStyle, Boolean updateReference, Boolean ignoreSize) |
复制源数据到目标数据范围时,是否复制源数据样式,是否更新引用,是否忽略大小 |
copy(CellRange sourceRange, Worksheet worksheet, int destRow, int destColumn, boolean copyStyle, boolean undateReference) |
复制源数据到目标工作表中的指定行和列时,是否复制源数据样式,是否更新引用 |
copy(CellRange sourceRange, CellRange destRange, boolean copyStyle, boolean updateReference, boolean ignoreSize, boolean copyShape) |
复制源数据到目标数据范围时,是否复制源数据样式,是否更新引用,是否忽略大小,是否复制形状 |
文中的方法使用了免费Java Excel类库(Free Spire.XLS for Java),可在官网下载包,解压后,将lib文件夹中的jar文件导入Java程序;或者通过maven仓库下载导入jar,maven仓库路径配置及依赖添加可以参考教程。导入效果如下图:
Java代码示例
【示例1】在同一工作簿内复制
import com.spire.xls.*; public class Copy1 {
public static void main(String[] args) {
//加载文档
Workbook wb = new Workbook();
wb.loadFromFile("test.xlsx"); //获取第一张工作表
Worksheet sheet0 = wb.getWorksheets().get(0); //获取第三张工作表,命名,并将第一张工作表内容复制到该工作表
Worksheet sheet2 = wb.getWorksheets().get(2);
sheet2.setName("Copiedsheet");
sheet2.copyFrom(sheet0); //保存文档
wb.saveToFile("Copy1.xlsx",FileFormat.Version2013);
}
}
复制效果:
【示例2】在不同工作簿间复制
import com.spire.xls.*; public class Copy2 {
public static void main(String[] args) {
//加载文档1,并获取第一张幻灯片
Workbook wb1 = new Workbook();
wb1.loadFromFile("test1.xlsx");
Worksheet sheet1 = wb1.getWorksheets().get(0); //加载文档2,获取第三张幻灯片,并将文档1中的工作表内容复制到该工作表
Workbook wb2 = new Workbook();
wb2.loadFromFile("test2.xlsx");
Worksheet sheet2 = wb2.getWorksheets().get(2);
sheet2.setName("Copied");
sheet2.copyFrom(sheet1); //保存文档
wb2.saveToFile("Copy2.xlsx",FileFormat.Version2013);
}
}
复制效果:
【示例3】复制单元格数据范围
import com.spire.xls.*; public class CopyRange {
public static void main(String[] args) {
//加载文档
Workbook wb = new Workbook();
wb.loadFromFile("test.xlsx"); //获取第一个工作表
Worksheet sheet = wb.getWorksheets().get(0); //复制指定单元格范围中的数据
CellRange range1 = sheet.getCellRange(8,1,8,7);
CellRange range2 = sheet.getCellRange(11,1,11,7);
sheet.copy(range1,range2,true); //保存文档
wb.saveToFile("CopyRange.xlsx",FileFormat.Version2013);
}
}
复制结果:
(本文完)
Java 复制Excel工作表的更多相关文章
- C# 原样复制excel工作表
在excel中,工作表是工作薄的组成部分,一个工作薄可以由一个或多个工作表组成,一个工作薄也可以说是一个excel文档,正因为如此,excel工作表的复制也就分为两种类型:在同一文档之内复制和在不同文 ...
- C#将一个excel工作表根据指定范围拆分为多个excel文件
C#将一个excel工作表根据指定范围拆分为多个excel文件 微软Excel没有提供直接的方法来拆分excel文件,因此要拆分一个excel文件最简单的方法可能就是手动剪切和粘贴了,除此之外,还有其 ...
- 使用宏命令撤销EXCEL工作表保护
EXCEL工作表编辑资料,设置了工作表保护后,不能对表格进行插入删除操作.如果没有密码,很简单:工具-选项—工作表保护——撤消工作表保护 就可以了.如果忘记密码,如下操作: 1. 打开文件 2. 工具 ...
- C# 如何合并Excel工作表
文档合并.拆分是实现文档管理的一种有效方式.在工作中,我们可能会遇到需要将多个文档合并的情况,那如何来实现呢,本文将进一步介绍.关于拆分Excel工作表,可参见这篇文章--C#如何拆分EXCEL工作表 ...
- C# 合并Excel工作表
文档合并.拆分是实现文档管理的一种有效方式.在工作中,我们可能会遇到需要将多个文档合并的情况,那如何来实现呢,本文将进一步介绍.关于拆分Excel工作表,可参见这篇文章——C#如何拆分EXCEL工作表 ...
- C#7.2——编写安全高效的C#代码 c# 中模拟一个模式匹配及匹配值抽取 走进 LINQ 的世界 移除Excel工作表密码保护小工具含C#源代码 腾讯QQ会员中心g_tk32算法【C#版】
C#7.2——编写安全高效的C#代码 2018-11-07 18:59 by 沉睡的木木夕, 123 阅读, 0 评论, 收藏, 编辑 原文地址:https://docs.microsoft.com/ ...
- 在Excel工作表单元格中引用当前工作表名称
在Excel工作表单元格中引用当前工作表名称 有多份Excel表格表头标题都为"××学校第1次拉练考试××班成绩表",由于工作表结构都是一样的,所以我每次都是复制工作表然后编辑修改 ...
- C#中如何在Excel工作表创建混合型图表
在进行图表分析的时候,我们可能需要在一张图表呈现两个或多个样式的图表,以便更加清晰.直观地查看不同的数据大小和变化趋势.在这篇文章中,我将分享C#中如何在一张图表中创建不同的图表类型,其中包括如何在同 ...
- 电脑右键新建excel工作表,但是扩展名是.xls,而不是.xlsx
怀疑是因为之前安装了wps,然后又卸载了,导致的.上网查阅,如下: excel默认新建xls 不是我的问题 Excel 2010/2013/2016在鼠标右键新建xls或xlsx文件后,打开报错“无法 ...
随机推荐
- UML:类图关系总结
UML类图几种关系的总结,泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Reali ...
- JVM集训-----内存结构
一.程序计数器/PC寄存器 (Program Counter Registe) 用于保存当前正在执行的程序的内存地址(下一条jvm指令的执行地址),由于Java是支持多线程执行的,所以程序执行的轨迹不 ...
- 移动端vue页面禁止移动/滚动
当需要在移动端中禁止页面滚动,加入:@touchmove.prevent即可,例子如下 <template> <div @touchmove.prevent> <h3 c ...
- 作业要求20191107-6 beta week 2/2 Scrum立会报告+燃尽图 05
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/9958 一.小组情况 队名:扛把子 组长:孙晓宇 组员:宋晓丽 梁梦瑶 韩 ...
- 小程序取消IOS虚拟支付解决方案
前因 本来我们的小程序用的好好的,结果突然有一天,微信就把小程序的ios端的虚拟支付给关了...坑爹啊!搞的安卓端的可以支付,ios的支付不了.于是就在网上找解决办法. 一说通过app跳转支付,总不能 ...
- (四十二)golang--管道
假设我们现在有这么一个需求: 计算1-200之间各个数的阶乘,并将每个结果保存在mao中,最终显示出来,要求使用goroutime. 分析: (1)使用goroutime完成,效率高,但是会出现并发/ ...
- <<代码大全>>阅读笔记之一 使用变量的一般事项
一.使用变量的一般事项 1.把变量引用局部化 变量应用局部化就是把变量的引用点尽可能集中在一起,这样做的目的是增加代码的可读性 衡量不同引用点靠近程度的一种方法是计算该变量的跨度(span) 示例 a ...
- linux 内核版本和发行版本区别
内核版本:我的理解是,内核是系统的心脏,是linux中最基层的代码.版本号如 Linux version 3.10.0-514.el7.x86_64 查看内核版本可使用.uname -a 或者cat ...
- 关于JMeter原子性相关探究
1.背景 最近宝路遇到个项目,在使用JMeter过程中引发了一些思考,宝路尝试用各种方式去验证,进而有了今天"JMeter原子性"相关主题. 2.目的 探究JMeter的事务的原子 ...
- 从零开始入门 K8s | 深入剖析 Linux 容器
作者 | 唐华敏(华敏) 阿里云容器平台技术专家 本文整理自<CNCF x Alibaba 云原生技术公开课>第 15 讲. 关注"阿里巴巴云原生"公众号,回复关键词 ...