外围海尊体育足球网

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

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

概述:在 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@obta.cn

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关产品
Spire.Office for .NET

专业的.NET Office套件,涵盖office文档创建、编辑、转换、管理和OCR内容识别等操作

Spire.XLS for .NET

Spire.XLS for .NET是专业.NET Excel组件,快速完成对Excel各类编程操作

Spire.XLS for WPF

Spire.XLS for WPF是一款强大的专业Excel组件,让开发人员能够用他们的WPF应用操作Excel文件。

Spire.XLS for Java

 Spire.XLS for Java让开发人员无需Microsoft Excel即可处理Excel

Spire.Office for WPF

Spire.Office for WPF是一款包含e-iceblue所有WPF文档管理组件的套包。

title
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP