彩票走势图

Spire.XLS系列教程:Java 在 Excel 中复制行、列和单元格数据并保留格式

翻译|使用教程|编辑:吉伟伟|2024-12-24 14:00:10.933|阅读 3 次

概述:在 Microsoft Excel 中,复制行、列和单元格是日常数据处理中的常见操作。本文将介绍如何使用 Spire.XLS for Java 和 Java 在 Excel 中复制行、列和单元格数据并保留格式。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

在 Microsoft Excel 中,复制行、列和单元格是日常数据处理中的常见操作。这些功能使用户能够快速复用数据和格式等内容,从而节省时间并减少手动输入错误的风险。在 Java 中,开发者可以利用 Spire.XLS for Java 库轻松实现 Excel 行、列和单元格的复制并保留原有格式。本文将介绍如何使用 Spire.XLS for Java 和 Java 在 Excel 中复制行、列和单元格数据并保留格式

Spire.XLS for Java 最新版下载  

安装 Spire.XLS for Java

首先,您需要将 Spire.Xls.jar 文件作为依赖项添加到您的 Java 程序中。可以从下载 JAR 文件。如果您使用 Maven,您可以通过将以下代码添加到项目的 pom.xml 文件中轻松地在应用程序中导入 JAR 文件。

Java 在 Excel 中复制行

要在 Excel 中复制行并保留格式,你可以使用 Worksheet.copyRow(CellRange sourceRow, Worksheet destSheet, int destRowIndex, EnumSet<CopyRangeOptions> copyOptions) 方法。具体步骤如下:

  • 创建 Workbook 类的对象。
  • 使用 Workbook.loadFromFile() 方法加载 Excel 文件。
  • 使用 Workbook.getWorksheets().get(index) 方法获取源工作表和目标工作表。
  • 使用 Worksheet.getRows()[index] 方法获取要复制的行。
  • 使用 Worksheet.copyRow(CellRange sourceRow, Worksheet destSheet, int destRowIndex, EnumSet<CopyRangeOptions> copyOptions) 方法复制行及其格式。
  • 将源行的列宽复制到目标行中的相应单元格。
  • 使用 Workbook.saveToFile() 方法将工作簿保存到文件中。

import com.spire.xls.*;
import java.util.EnumSet;

public class CopyRows {
    public static void main(String[] args) {
        // 创建Workbook对象
        Workbook workbook = new Workbook();
        // 加载Excel文件
        workbook.loadFromFile("示例.xlsx");

        // 获取源工作表
        Worksheet sheet1 = workbook.getWorksheets().get(0);

        // 获取目标工作表
        Worksheet sheet2 = workbook.getWorksheets().get(1);

        // 获取要复制的行
        CellRange row = sheet1.getRows()[0];

        // 将行从源工作表复制到目标工作表
        sheet1.copyRow(row, sheet2, 1, EnumSet.of(CopyRangeOptions.All));

        int columns = sheet1.getColumns().length;

        // 将源行中单元格的列宽复制到目标行
        for (int i = 0; i < columns; i++) 
        {
            double columnWidth = row.getColumns()[i].getColumnWidth();
            sheet2.getRows()[0].getColumns()[i].setColumnWidth(columnWidth);
        }

        // 保存工作簿到文件
        workbook.saveToFile("复制行.xlsx", ExcelVersion.Version2016);
        workbook.dispose();
    }
}

Java 在 Excel 中复制行

Java 在 Excel 中复制列

要在 Excel 中复制列并保留格式,可以使用 Worksheet.copyColumn(CellRange sourceColumn, Worksheet destSheet, int destColIndex, EnumSet<CopyRangeOptions> copyOptions) 方法。具体步骤如下:

import com.spire.xls.*;
import java.util.EnumSet;

public class CopyColumns {
    public static void main(String[] args) {
        // 创建Workbook对象
        Workbook workbook = new Workbook();
        // 加载Excel文件
        workbook.loadFromFile("示例.xlsx");

        // 获取源工作表
        Worksheet sheet1 = workbook.getWorksheets().get(0);

        // 获取目标工作表
        Worksheet sheet2 = workbook.getWorksheets().get(1);

        // 获取要复制的列
        CellRange column = sheet1.getColumns()[0];

        // 将列从源工作表复制到目标工作表
        sheet1.copyColumn(column, sheet2, 1, EnumSet.of(CopyRangeOptions.All));

        int rows = column.getRows().length;

        // 将源列中单元格的行高复制到目标列
        for (int i = 0; i < rows; i++) 
        {
            double rowHeight = column.getRows()[i].getRowHeight();
            sheet2.getColumns()[0].getRows()[i].setRowHeight(rowHeight);
        }

        // 保存工作簿到文件
        workbook.saveToFile("复制列.xlsx", ExcelVersion.Version2016);
        workbook.dispose();
    }
}

Java 在 Excel 中复制列

Java 在 Excel 中复制单元格

除了复制行和列外,Spire.XLS for Java 还提供了 CellRange.copy(CellRange destRange, EnumSet<CopyRangeOptions> copyOptions) 方法,支持复制特定单元格或单元格区域。具体步骤如下:

  • 创建 Workbook 类的对象。
  • 使用 Workbook.loadFromFile() 方法加载 Excel 文件。
  • 使用 Workbook.getWorksheets().get(index) 方法获取源工作表和目标工作表。
  • 使用 Worksheet.getCellRange() 方法获取源单元格区域和目标单元格区域。
  • 使用 CellRange.copy(CellRange destRange, EnumSet<CopyRangeOptions> copyOptions) 方法将源单元格区域及其格式复制到目标单元格区域。
  • 将源单元格区域的行高和列宽复制到目标单元格区域。
  • 使用 Workbook.saveToFile() 方法保存工作簿。

import com.spire.xls.*;
import java.util.EnumSet;

public class CopyCells {
    public static void main(String[] args) {
        // 创建Workbook对象
        Workbook workbook = new Workbook();
        // 加载Excel文件
        workbook.loadFromFile("示例.xlsx");

        // 获取源工作表
        Worksheet sheet1 = workbook.getWorksheets().get(0);

        // 获取目标工作表
        Worksheet sheet2 = workbook.getWorksheets().get(1);

        // 获取源单元格区域
        CellRange range1 = sheet1.getCellRange("A1:E7");
        // 获取目标单元格区域
        CellRange range2 = sheet2.getCellRange("A1:E7");

        // 将源单元格区域复制到目标单元格区域
        range1.copy(range2, EnumSet.of(CopyRangeOptions.All));

        // 将源单元格区域的行高和列宽复制到目标单元格区域
        for (int i = 0; i < range1.getRows().length; i++) 
        {
            CellRange row = range1.getRows()[i];
        for (int j = 0; j < row.getColumns().length; j++)
            {
              CellRange column = row.getColumns()[j];
              range2.getRows()[i].getColumns()[j].setColumnWidth(column.getColumnWidth());
              range2.getRows()[i].setRowHeight(row.getRowHeight());
            }
        }

        // 保存工作簿到文件
        workbook.saveToFile("复制单元格.xlsx", ExcelVersion.Version2016);
        workbook.dispose();
    }
}


Java 在 Excel 中复制单元格

欢迎下载|体验更多E-iceblue产品

获取更多信息请咨询  ;技术交流Q群(767755948)

慧都年终大促火热开启


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP