利用Java实现复制Excel工作表功能
本文归纳了关于Java如何复制Excel工作表的方法,按不同复制需求,可分为:
1.复制工作表
1.1在同一个工作簿内复制工作表
1.2在不同工作簿间复制工作表
2.复制指定单元格数据
对于复制方法copy(),这里简单整理了一个表格,其中包含了对数据复制的不同应用需求,可参考使用:
方法 解释 copyFrom(Worksheetworksheet) 复制自源工作表的数据 copy(CellRangesourceRange,CellRangedestRange) 复制源数据到目标数据范围 copy(CellRangesourceRange,CellRangedestRange,BooleancopyStyle) 复制源数据到目标数据范围时,是否复制源数据样式 copy(CellRangesourceRange,Worksheetworksheet,intdestRow,intdestColumn) 复制源数据到目标工作表中的指定行和列 copy(CellRangesourceRange,Worksheetworksheet,intdestRow,intdestColumn,BooleancopyStyle) 复制源数据到目标工作表中的指定行和列时,是否复制源数据样式 copy(CellRangesourceRange,CellRangedestRange,BooleancopyStyle,BooleanupdateReference,BooleanignoreSize) 复制源数据到目标数据范围时,是否复制源数据样式,是否更新引用,是否忽略大小 copy(CellRangesourceRange,Worksheetworksheet,intdestRow,intdestColumn,booleancopyStyle,booleanundateReference) 复制源数据到目标工作表中的指定行和列时,是否复制源数据样式,是否更新引用 copy(CellRangesourceRange,CellRangedestRange,booleancopyStyle,booleanupdateReference,booleanignoreSize,booleancopyShape) 复制源数据到目标数据范围时,是否复制源数据样式,是否更新引用,是否忽略大小,是否复制形状
文中的方法使用了免费JavaExcel类库(FreeSpire.XLSforJava),可在官网下载包,解压后,将lib文件夹中的jar文件导入Java程序;或者通过maven仓库下载导入jar,maven仓库路径配置及依赖添加可以参考教程。导入效果如下图:
Java代码示例
【示例1】在同一工作簿内复制
importcom.spire.xls.*;
publicclassCopy1{
publicstaticvoidmain(String[]args){
//加载文档
Workbookwb=newWorkbook();
wb.loadFromFile("test.xlsx");
//获取第一张工作表
Worksheetsheet0=wb.getWorksheets().get(0);
//获取第三张工作表,命名,并将第一张工作表内容复制到该工作表
Worksheetsheet2=wb.getWorksheets().get(2);
sheet2.setName("Copiedsheet");
sheet2.copyFrom(sheet0);
//保存文档
wb.saveToFile("Copy1.xlsx",FileFormat.Version2013);
}
}
复制效果:
【示例2】在不同工作簿间复制
importcom.spire.xls.*;
publicclassCopy2{
publicstaticvoidmain(String[]args){
//加载文档1,并获取第一张幻灯片
Workbookwb1=newWorkbook();
wb1.loadFromFile("test1.xlsx");
Worksheetsheet1=wb1.getWorksheets().get(0);
//加载文档2,获取第三张幻灯片,并将文档1中的工作表内容复制到该工作表
Workbookwb2=newWorkbook();
wb2.loadFromFile("test2.xlsx");
Worksheetsheet2=wb2.getWorksheets().get(2);
sheet2.setName("Copied");
sheet2.copyFrom(sheet1);
//保存文档
wb2.saveToFile("Copy2.xlsx",FileFormat.Version2013);
}
}
复制效果:
importcom.spire.xls.*;
publicclassCopyRange{
publicstaticvoidmain(String[]args){
//加载文档
Workbookwb=newWorkbook();
wb.loadFromFile("test.xlsx");
//获取第一个工作表
Worksheetsheet=wb.getWorksheets().get(0);
//复制指定单元格范围中的数据
CellRangerange1=sheet.getCellRange(8,1,8,7);
CellRangerange2=sheet.getCellRange(11,1,11,7);
sheet.copy(range1,range2,true);
//保存文档
wb.saveToFile("CopyRange.xlsx",FileFormat.Version2013);
}
}
复制结果:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。