チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»Java»Spire.XLS for Java»セル»Java:Excel の行、列、セルを書式付きでコピーする方法
2024-12-26

Java:Excel の行、列、セルを書式付きでコピーする方法

Excel では、行、列、セルをコピーすることは基本的な操作であり、ワークシート内や複数のワークシート間でデータを効率的に複製することができます。Java を使用してプログラムで行、列、セルをコピーする方法を理解することで、大量のデータを扱う場合や繰り返し作業を自動化する場合に、データ操作が大幅に効率化されます。本記事では、Spire.XLS for Java を使用して、書式を含めて Excel の行、列、セルをコピーする方法を解説します。

Spire.XLS for Java をインストールします

まず、Spire.XLS for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.xls</artifactId>
        <version>14.12.0</version>
    </dependency>
</dependencies>

Java で Excel の行を書式付きでコピーする

Spire.XLS for Java の Worksheet.copyRow(CellRange sourceRow, Worksheet destSheet, int destRowIndex, EnumSet<CopyRangeOptions> copyOptions) メソッドを使用すると、同一ワークシート内または異なるワークシート間で行を複製することができます。このメソッドの CopyRangeOptions パラメーターを使用することで、コピーする項目(フラグ、条件付き書式、データ検証、数式値のみなど)を細かく制御できます。

以下の手順に従って、異なるワークシート間で書式付きで行をコピーする方法を説明します。

  • Workbook クラスのオブジェクトを作成します。
  • Workbook.loadFromFile() メソッドを使用して Excel ファイルを読み込みます。
  • Workbook.getWorksheets().get(index) メソッドを使用して、ソースとコピー先のワークシートを取得します。
  • Worksheet.getRows()[index] メソッドを使用して、コピーする行を取得します。
  • Worksheet.copyRow(CellRange sourceRow, Worksheet destSheet, int destRowIndex, EnumSet<CopyRangeOptions> copyOptions) メソッドを使用して、ソースワークシートの行をコピー先ワークシートにコピーします。
  • ソース行のセルの列幅をコピー先行の対応するセルにコピーします。
  • Workbook.saveToFile() メソッドを使用して、ワークブックをファイルに保存します。
  • Java
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("Sample.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("output/Excelの行をコピー.xlsx", ExcelVersion.Version2016);
        workbook.dispose();
    }
}

 Java を使った書式付き Excel 行のコピー結果

Java で Excel の列を書式付きでコピーする

列を書式付きでコピーする場合、Worksheet.copyColumn(CellRange sourceColumn, Worksheet destSheet, int destColIndex, EnumSet<CopyRangeOptions> copyOptions) メソッドを使用します。以下に詳細な手順を示します。

  • Workbook クラスのオブジェクトを作成します。
  • Workbook.loadFromFile() メソッドを使用して Excel ファイルを読み込みます。
  • Workbook.getWorksheets().get(index) メソッドを使用して、ソースとコピー先のワークシートを取得します。
  • Worksheet.getColumns()[index] メソッドを使用して、コピーする列を取得します。
  • Worksheet.copyColumn(CellRange sourceColumn, Worksheet destSheet, int destColIndex, EnumSet<CopyRangeOptions> copyOptions) メソッドを使用して、ソースワークシートの列をコピー先ワークシートにコピーします。
  • ソース列のセルの行高さをコピー先列の対応するセルにコピーします。
  • Workbook.saveToFile() メソッドを使用して、ワークブックをファイルに保存します。
  • Java
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("Sample.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("output/Excelの列をコピー.xlsx", ExcelVersion.Version2016);
        workbook.dispose();
    }
}

Spire.XLS で 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() メソッドを使用して、ワークブックをファイルに保存します。
  • Java
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("Sample.xlsx");

        // ソースワークシートを取得
        Worksheet sheet1 = workbook.getWorksheets().get(0);

        // 宛先ワークシートを取得
        Worksheet sheet2 = workbook.getWorksheets().get(1);

        // ソースセル範囲を取得
        CellRange range1 = sheet1.getCellRange("A1:D5");
        // 宛先セル範囲を取得
        CellRange range2 = sheet2.getCellRange("A1:D5");

        // ソースワークシートのセル範囲を宛先ワークシートのセル範囲にコピー
        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("output/Excelのセル範囲をコピー.xlsx", ExcelVersion.Version2016);
        workbook.dispose();
    }
}

Javaによる書式付きエクセルのセル範囲のコピーの効果

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 179 times