本文将介绍如何使用spire.xls for java来复制excel工作表,按不同复制需求,可分为:
1、复制工作表
- 在同一个工作簿内复制工作表
- 在不同工作簿间复制工作表
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) | 复制源数据到目标数据范围时,是否复制源数据样式,是否更新引用,是否忽略大小,是否复制形状 |
在同一工作簿内复制
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);
}
}
复制效果:
在不同工作簿间复制
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);
}
}
复制效果:
复制单元格数据范围
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);
}
}
复制结果: