`

Java 复制Excel工作表

阅读更多

本文归纳了关于Java如何复制Excel工作表的方法,按不同复制需求,可分为:

1. 复制工作表

 1.1 在同一个工作簿内复制工作表

 1.2 在不同工作簿间复制工作表

2.复制单元格

  2.1 复制指定单元格数据

  2.2 复制单元格只保留公式值

  2.3 复制单元格中的数据验证

 

 

对于复制方法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)

复制源数据到目标数据范围时,是否复制源数据样式,是否更新引用,是否忽略大小,是否复制形状

 

文中的方法使用了Java Excel类库(Spire.XLS for Java),可在官网下载包,解压后,将lib文件夹中的jar文件导入Java程序;或者通过maven仓库下载导入jar,maven仓库路径配置及依赖添加可以参考教程

 

 

Java代码示例

 

 

一、 复制工作表

 1.在同一工作簿内复制

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);
    }
}

 

2. 在不同工作簿间复制

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);
    }
}

 

二、复制单元格

 

1. 带格式复制指定单元格

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);
    }
}

 

2. 复制单元格时只保留公式值

import com.spire.xls.*;

import java.util.EnumSet;

public class CopyCellsValue {
   public static void main(String[] args) {
       //加载Excel工作簿
       Workbook wb = new Workbook();
       wb.loadFromFile("test.xlsx");

       //获取工作表
       Worksheet sheet = wb.getWorksheets().get(2);

       //设置复制单元格选项为仅复制公式值
       CopyRangeOptions copyOptions = CopyRangeOptions.OnlyCopyFormulaValue;
       //复制指定单元格到目标单元格
       sheet.copy(sheet.getCellRange("F3:G7"), sheet.getCellRange("I3:J7"), EnumSet.of(copyOptions));

       //保存文档
       wb.saveToFile("CopyCellsValue.xlsx",FileFormat.Version2013);
       wb.dispose();
   }
}

 

3. 复制单元格中的数据验证

import com.spire.xls.CopyRangeOptions;
import com.spire.xls.FileFormat;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;

import java.util.EnumSet;

public class CopyDataValidation {
   public static void main(String[] args) {
       //加载Excel工作簿
       Workbook wb = new Workbook();
       wb.loadFromFile("DataValidation.xlsx");

       //获取工作表
       Worksheet sheet = wb.getWorksheets().get(0);

       //设置复制单元格选项为复制数据验证
       CopyRangeOptions copyOptions1 = CopyRangeOptions.CopyDataValidations;
       CopyRangeOptions copyOptions2 = CopyRangeOptions.CopyStyles;//这里添加一个复制单元格样式的选项,和包含数据验证的单元格样式一致,如不需要复制单元格样式,可省略此步骤

       //复制指定单元格中的数据验证到目标单元格
       sheet.copy(sheet.getCellRange("B12"), sheet.getCellRange("B15"), EnumSet.of(copyOptions1));
       sheet.copy(sheet.getCellRange("B12"), sheet.getCellRange("B15"), EnumSet.of(copyOptions2));

       //保存文档
       wb.saveToFile("CopyDataValidaion.xlsx", FileFormat.Version2013);
       wb.dispose();
   }
}

 

(完)

 

0
0
分享到:
评论

相关推荐

    利用Java实现复制Excel工作表功能

    Java实现复制Excel工作表功能 Java是一种广泛应用于企业开发的编程语言,而Excel则是办公软件中的王者。今天,我们将介绍如何使用Java实现复制Excel工作表功能,包括在同一个工作簿内复制工作表和在不同工作簿间...

    poi excel 模板读取 复制表 复制行且区分合并行

    本篇将详细介绍如何使用Apache POI来读取Excel模板,复制工作表(Sheet)以及复制行,并特别关注如何处理合并单元格的情况。 首先,我们需要引入Apache POI的相关依赖库到我们的项目中。在Maven项目中,可以在pom....

    poi复制指定行数的Excel表格内容

    然后,通过`Sheet`对象获取工作表。 3. **复制指定行**:遍历需要复制的行号,使用`Row`对象的`copyRowTo()`方法复制指定行到新的`Sheet`中。注意,这个方法只复制了单元格的内容,不包括样式。 4. **复制样式**:...

    java 创建EXCEL文件,并向EXCEL中写入数据

    1. **创建Workbook对象**:`jxl.Workbook`是Excel文件的核心对象,它代表了一个Excel工作簿。你可以通过`Workbook.createWorkbook()`方法创建一个新的工作簿。 2. **创建Sheet对象**:`jxl.Sheet`表示工作簿中的...

    java-excel分表

    本话题聚焦于“java-excel分表”,即如何将一个Excel工作表(Sheet)中的数据拆分到多个新的工作表中,同时保持新旧工作表之间的多对一对应关系。下面将详细介绍这一过程涉及的关键知识点。 首先,我们需要了解Java...

    opi java操作excel表格 无脑复制 无脑粘贴 excel追加 创建

    在给定的标题和描述中,“opi java操作excel表格 无脑复制 无脑粘贴 excel追加 创建”提到了使用Java进行Excel表格的操作,包括复制、粘贴、追加数据以及创建新的Excel文件。这通常涉及到Apache POI库,一个强大的...

    java操作excel实例

    - 工作簿(Workbook)、工作表(Sheet)、行(Row)和单元格(Cell)对象的创建与操作 - Sheet的复制,包括样式、公式和数据 - 数据的填充和单元格的格式化 - 对于大型数据集,可能需要理解内存管理和优化技术 通过...

    Java操作excel的jar包

    这个库提供了一组API,使得开发者能够创建、读取和修改Excel工作簿(Workbook)、工作表(Worksheet)以及单元格(Cell)等对象。`jxl`库支持多种Excel格式,包括老版本的.BIFF8和新版本的.XLSX。 **使用jxl库的...

    Java处理Excel文件-excel文件的创建,删除,写入,读取.pdf

    5. **向Excel中写入数据**:这部分使用了反射机制,使得代码可以接受任何对象类型,自动解析对象的属性和方法,然后将这些信息写入到Excel工作表中。通过反射,你可以获取到类的所有字段(属性)和方法,遍历字段并...

    JAVA poi 做EXCEL导出(包含图片) 完整版

    接下来,创建一个`Sheet`对象,它代表Excel的一个工作表: ```java XSSFSheet sheet = workbook.createSheet("数据表"); ``` 在Excel中,`Row`表示行,`Cell`表示单元格。我们可以创建并设置这些对象的值: ```...

    Java处理Excel文件

    本文将详细介绍如何使用Java语言来处理Excel文件,包括从Excel文件读取数据表、生成新的Excel工作簿以及拷贝、更新Excel工作簿等操作。 #### 一、从Excel文件读取数据表 ##### 1.1 使用JavaExcelAPI读取Excel数据...

    Java制作Excel

    `jxl.jar`库包含了对Excel文件的各种操作支持,包括创建新的工作簿、添加工作表、设置单元格格式、读取数据、公式计算等。使用这个库,开发者可以方便地构建动态的数据报表或者数据分析工具。 下面我们将深入探讨...

    java 操作excel代码和jar包

    3. **添加工作表**:使用`Workbook`的`createSheet()`方法创建新的工作表,每个工作表都有一个唯一的名称。 4. **写入数据**:获取工作表的`Sheet`对象,然后通过`Cell`和`Row`对象定位到特定单元格,使用`...

    Java平台Excel文档处理类库API-Free Spire.XLS for Java

    添加/删除/复制工作表、窗口冻结、工作表缩放、边框设置、视图模式;添加、编辑、删除公式;批注;图表;数据查找、筛选、替换、排序、高亮、验证、分列;单元格合并拆分、边框、上下标、字体设置、对齐方式、缩进、...

    Java POI根据模板生成Excel(xlsx)文件

    Java POI库是一个广泛使用的开源项目,专门用于处理Microsoft Office格式的文件,包括Excel的.xls和.xlsx文件。在本示例中,我们关注的是如何利用Java POI来根据模板生成.xlsx格式的Excel文件。这个过程涉及到对...

    jxljar.zip用于java操作Excel表格

    此库支持多种功能,包括读取现有的Excel工作簿,创建新的工作簿,修改单元格内容,设置样式,处理公式,以及处理图表等。 要开始使用"jxl"库,首先需要将"jxljar"添加到项目的类路径中。如果你的项目是Maven工程,...

    java解析excel源码

    2. **创建Workbook对象**:这是Apache POI中的核心对象,代表一个Excel工作簿。可以通过HSSFWorkbook(对应.xls)或XSSFWorkbook(对应.xlsx)来创建。 3. **读取Sheet**:Workbook对象可以获取Sheet,每个Sheet...

    Excel内容复制到JTable中

    - 使用`Workbook`类打开Excel文件,然后通过`getSheet()`方法获取工作表。 - 使用`Sheet`对象的`getRow()`和`getCell()`方法来获取特定行和列的数据。 - 数据类型可能包括字符串、数字、日期等,需要根据`Cell...

    JAVA-write-EXCEL.rar_copy excel java_java write_java读取_java读取Exc

    - 如果要复制整个工作簿,可以创建一个新的`Workbook`,然后遍历源工作簿的所有工作表,使用`Sheet.cloneSheet()`方法复制,并添加到新工作簿中。 - 复制单元格数据时,需注意样式和公式也需要一并复制。 4. **...

Global site tag (gtag.js) - Google Analytics