Java 复制Excel工作表

在日常操作Excel文档时,经常会遇到需要复制工作表的情况,以此来节省时间,提高工作效率。根据复制需求不同,一般我们可将其分为以下两类:

1、  复制工作表(保留原有工作表格式)

① 在同一个文档内复制工作表

② 在不同文档间复制工作表

2、  复制单元格

① 复制指定单元格数据(保留原有单元格格式)

② 复制带有公式的单元格时只保留公式值

同时,对于复制方法copy(),以下是包含了对数据复制的不同应用方法的表格,可供参考:

环境搭建:

方式1:通过官网下载Jar包。解压文档后将lib文件夹下的Spire.Xls.jar导入IDEA中。具体操作步骤参见下图。

方式2:通过maven安装产品及导入相关依赖。详细步骤可参考此教程

代码示例

1、复制工作表

① 在同一文档内复制工作表

import com.spire.xls.*;

public class CopyWorksheet1 {

public static void main(String[] args) {

//加载文档

Workbook wb = new Workbook();

wb.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.xlsx");

//获取第一张工作表

Worksheet sheet0 = wb.getWorksheets().get(0);

//获取第二张工作表,命名,并将第一张工作表内容复制到该工作表

Worksheet sheet2 = wb.getWorksheets().get(1);

sheet2.setName("Copiedsheet");

sheet2.copyFrom(sheet0);

//保存文档

wb.saveToFile("output/Copy1.xlsx",FileFormat.Version2013);

    }

}

复制效果:

② 在不同文档间复制

import com.spire.xls.*;

public class CopyWorksheet2 {

public static void main(String[] args) {

//加载文档1,并获取第一张幻灯片

Workbook wb1 = new Workbook();

wb1.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.xlsx");

Worksheet sheet1 = wb1.getWorksheets().get(0);

//加载文档2,获取第二张幻灯片,并将文档1中的工作表内容复制到该工作表

Workbook wb2 = new Workbook();

wb2.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample2.xlsx");

Worksheet sheet2 = wb2.getWorksheets().get(1);

sheet2.setName("Copied");

sheet2.copyFrom(sheet1);

//保存文档

wb2.saveToFile("output/Copy2.xlsx",FileFormat.Version2013);

    }

}

复制效果:

2、复制单元格

① 直接复制单元格数据范围

import com.spire.xls.*;

public class CopyCells1 {

public static void main(String[] args) {

//加载文档

Workbook wb = new Workbook();

wb.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.xlsx");

//获取第一个工作表

Worksheet sheet = wb.getWorksheets().get(0);

//复制指定单元格范围中的数据

CellRange range1 = sheet.getCellRange(11,1,17,3);

CellRange range2 = sheet.getCellRange(20,1,26,3);

sheet.copy(range1,range2,true);

//保存文档

wb.saveToFile("output/CopyCells1.xlsx",FileFormat.Version2013);

    }

}

复制效果:

② 复制带公式的单元格时只保留公式值

import com.spire.xls.*;

import java.util.EnumSet;

public class copycell {

public static void main(String[] args) {

//加载Excel工作簿

Workbook wb = new Workbook();

wb.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.xlsx");

//获取工作表

Worksheet sheet = wb.getWorksheets().get(0);

//设置复制单元格选项为仅复制公式值

CopyRangeOptions copyOptions = CopyRangeOptions.OnlyCopyFormulaValue;

//复制指定单元格到目标单元格

sheet.copy(sheet.getCellRange("F3:F18"), sheet.getCellRange("K3:K18"), EnumSet.of(copyOptions));

//保存文档

wb.saveToFile("output/CopyCellsValue.xlsx",FileFormat.Version2013);

wb.dispose();

    }

}

复制效果:

(本文完)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容