java 显示excel表_Java 复制Excel工作表

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

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

  • 在同一个文档内复制工作表
  • 在不同文档间复制工作表

2、 复制单元格

  • 复制指定单元格数据(保留原有单元格格式)
  • 复制带有公式的单元格时只保留公式值

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

b6de82b36599d1fd8eb3f32b5848be90.png
258029b5b257133c34bc011594c982d4.png

环境搭建:

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

b3af42718695a174fe48b0641056fcfc.png

方式 2:通过maven安装产品及导入相关依赖。

代码示例

1、复制工作表

  • 在同一文档内复制工作表
import com.spire.xls.*;public class CopyWorksheet1 {    public static void main(String[] args) {        //加载文档        Workbook wb = new Workbook();        wb.loadFromFile("C:甥敳獲Test1DesktopSample.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);    }}

复制效果:

f81c5aa58e004d30b8c70b34744a2f81.png
  • 在不同文档间复制
import com.spire.xls.*;public class CopyWorksheet2 {    public static void main(String[] args) {        //加载文档1,并获取第一张幻灯片        Workbook wb1 = new Workbook();        wb1.loadFromFile("C:甥敳獲Test1DesktopSample.xlsx");        Worksheet sheet1 = wb1.getWorksheets().get(0);        //加载文档2,获取第二张幻灯片,并将文档1中的工作表内容复制到该工作表        Workbook wb2 = new Workbook();        wb2.loadFromFile("C:甥敳獲Test1DesktopSample2.xlsx");        Worksheet sheet2 = wb2.getWorksheets().get(1);        sheet2.setName("Copied");        sheet2.copyFrom(sheet1);        //保存文档        wb2.saveToFile("output/Copy2.xlsx",FileFormat.Version2013);    }}

复制效果:

7e0c7b58ac23749dbc3f9597650d7d8c.png

2、复制单元格

  • 直接复制单元格数据范围
import com.spire.xls.*;public class CopyCells1 {    public static void main(String[] args) {        //加载文档        Workbook wb = new Workbook();        wb.loadFromFile("C:甥敳獲Test1DesktopSample.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);    }}

复制效果:

47c80682e4d492843bd638452c671d7e.png
  • 复制带公式的单元格时只保留公式值
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:甥敳獲Test1DesktopSample.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();    }}

复制效果:

bd23e772c909ff2c2066a71615ebf5f0.png

(本文完)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现复制Excel工作功能可以使用Apache POI库来操作Excel文件。可以通过以下步骤来复制Excel工作: 1. 创建一个新的Excel工作簿对象,即新的Excel文件。 2. 从原始Excel文件中读取要复制工作。 3. 在新的Excel工作簿中创建一个新的工作。 4. 将原始工作的内容复制到新的工作中。 5. 将新的工作添加到新的Excel工作簿中。 6. 保存新的Excel文件。 下面是一个简单的Java程序,可以将一个名为“Sheet1”的工作从一个名为“old_file.xlsx”的Excel文件中复制到一个名为“new_file.xlsx”的新Excel文件中: ```java import java.io.FileInputStream; import java.io.FileOutputStream; import org.apache.poi.ss.usermodel.*; public class ExcelCopySheetExample { public static void main(String[] args) throws Exception { // Open the old Excel file FileInputStream inputWorkbook = new FileInputStream("old_file.xlsx"); Workbook workbook = WorkbookFactory.create(inputWorkbook); // Get the sheet to copy Sheet sheetToCopy = workbook.getSheet("Sheet1"); // Create a new Excel file Workbook newWorkbook = WorkbookFactory.create(true); Sheet newSheet = newWorkbook.createSheet("Sheet1"); // Copy the contents of the old sheet to the new sheet int rowCount = sheetToCopy.getLastRowNum(); for (int i = 0; i <= rowCount; i++) { Row row = sheetToCopy.getRow(i); Row newRow = newSheet.createRow(i); int cellCount = row.getLastCellNum(); for (int j = 0; j < cellCount; j++) { Cell cell = row.getCell(j); Cell newCell = newRow.createCell(j); if (cell != null) { switch (cell.getCellType()) { case STRING: newCell.setCellValue(cell.getStringCellValue()); break; case NUMERIC: newCell.setCellValue(cell.getNumericCellValue()); break; case BOOLEAN: newCell.setCellValue(cell.getBooleanCellValue()); break; case FORMULA: newCell.setCellValue(cell.getCellFormula()); break; default: newCell.setCellValue(""); } } } } // Save the new Excel file FileOutputStream outputWorkbook = new FileOutputStream("new_file.xlsx"); newWorkbook.write(outputWorkbook); outputWorkbook.close(); } } ``` 在上面的代码中,我们使用Apache POI库从“old_file.xlsx”文件中读取一个名为“Sheet1”的工作,并将其复制到一个新的Excel文件“new_file.xlsx”中。我们遍历原始工作的每一行和每一个单元格,并将它们复制到新的工作中。最后,我们保存新的Excel文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值