Excel では、行、列、セルをコピーすることは基本的な操作であり、ワークシート内や複数のワークシート間でデータを効率的に複製することができます。Java を使用してプログラムで行、列、セルをコピーする方法を理解することで、大量のデータを扱う場合や繰り返し作業を自動化する場合に、データ操作が大幅に効率化されます。本記事では、Spire.XLS for Java を使用して、書式を含めて Excel の行、列、セルをコピーする方法を解説します。 Java で Excel の行を書式付きでコピーする Java で Excel の列を書式付きでコピーする 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 の列を書式付きでコピーする 列を書式付きでコピーする場合、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(); } } 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(); } } 一時ライセンスを申請する 結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。