セル範囲の複製は、スプレッドシート管理の基本的で非常に役に立つ機能であり、ユーザーは簡単に指定した位置にデータ、書式設定、数式などのセルの範囲を複製できます。これにより、ユーザーはスプレッドシート全体で同一のコンテンツを効率的に複製しながら、入力エラーの可能性を減らすことができます。重要なのは、セル範囲を複製する際に、セル間の相対的な関係が保持され、複製されたデータと元のデータとの一貫性が確保されることです。そのため、この機能はファイルのバックアップやテンプレート作成などのタスクに非常に価値があり、スプレッドシートには欠かせないツールとなっています。この記事では、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>13.6.5</version>
</dependency>
</dependencies>
ワークシート内の特定のセル範囲を複製する
Spire.XLS for Java には、同じワークシート内の特定のセル範囲の複製をサポートする Worksheet.copy() メソッドが用意されています。以下は詳細な手順です。
- 新しい Workbook オブジェクトを作成します。
- Workbook.loadFromFile() メソッドを使用してディスクから Excel ファイルを読み込みます。
- Workbook.getWorksheets().get() メソッドを使用して、最初のワークシートを取得します。
- Worksheet.getCellRange() メソッドを使用して、最初のシートのソース範囲とターゲット範囲を取得します。
- Worksheet.copy() メソッドを使用して、ワークシート内の特定のセル範囲を複製します。
- 最後に、出力パスを指定し、Workbook.saveToFile() メソッドを使用して結果ファイルを保存します。
- Java
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class CopyRow {
public static void main(String[] args) {
//Workbookオブジェクトを作成する
Workbook wb = new Workbook();
//ディスクからExcelファイルをロードする
wb.loadFromFile("sample.xlsx", ExcelVersion.Version2013);
//最初のシートを取得する
Worksheet sheet = wb.getWorksheets().get(0);
//ソース範囲とターゲット範囲を取得する
CellRange sourceRange = sheet.getCellRange("A1:E1");
CellRange destRange = sheet.getCellRange("A10:E10");
//特定のセル範囲をシートに複製する
sheet.copy (sourceRange,destRange,true);
//結果ファイルを保存する
wb.saveToFile("CopyRangeWithinSheet.xlsx", ExcelVersion.Version2013);
wb.dispose();
}
}
ワークシート間で特定のセル範囲を複製する
Spire.XLS for Java ライブラリを使用すると、セル範囲をあるシートから別のシートに簡単に複製することもできます。以下は、異なるワークシート間でセル範囲を複製する手順です。
- 新しい Workbook オブジェクトを作成します。
- Workbook.loadFromFile() メソッドを使用してディスクから Excel ファイルを読み込みます。
- Workbook.getWorksheets().get() メソッドを使用して、このファイルの 1 番目と 2 番目のワークシートを取得します。
- Worksheet.getCellRange() メソッドを使用してソース範囲とターゲット範囲を取得します。
- Worksheet.copy() メソッドを呼び出して、sheet1 から sheet2 に特定のセル範囲を複製します。
- autoFitColumn() メソッドを使用して、sheet2 の列幅を自動調整します。
- 最後に、出力パスを指定し、Workbook.saveToFile() メソッドを使用して結果ファイルを保存します。
- Java
import com.spire.xls.CellRange;
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class CopyRow {
public static void main(String[] args) {
//Workbookオブジェクトを作成する
Workbook wb = new Workbook();
//ディスクからExcelファイルをロードする
wb.loadFromFile("sample.xlsx", ExcelVersion.Version2013);
//最初のシートを取得する
Worksheet sheet1 = wb.getWorksheets().get(0);
//2番目のシートを取得する
Worksheet sheet2 = wb.getWorksheets().get(1);
//ソース範囲とターゲット範囲を取得する
CellRange sourceRange = sheet1.getCellRange("A1:E1");
CellRange destRange = sheet2.getCellRange("A1:E1");
//特定のセル範囲をsheet1からsheet2に複製する
sheet1.copy (sourceRange,destRange,true);
//sheet2の列幅を自動調整する
for (int i = 0; i < 8; i++) {
sheet2.autoFitColumn(i+1);
}
//結果ファイルを保存する
wb.saveToFile("CopyRangeBetweenSheets.xlsx", ExcelVersion.Version2013);
wb.dispose();
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。