利用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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。