Excelドキュメントを操作する際に、複数のExcelドキュメントを1つのドキュメントにマージするのは非常に実用的な機能です。この機能は、関連ドキュメントを一緒に配置するのに役立ち、後で検索するのに便利です。Free Spire.XLS for Javaは、複数のExcelファイルのマージを簡単に実行するのに役立ちます。具体的な操作の詳細は次のとおりです。
Spire.XLS.Jarのインストール
方法1:
mavenを使用している場合は、次のコードをプロジェクトのpom.xmlファイルに追加することで、JARファイルをアプリケーションにインポートできます。
<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.free</artifactId>
<version>5.1.0</version>
</dependency>
</dependencies>
方法2:
mavenを使用していない場合は、このリンクからFree Spire.XLS for Javaをダウンロードできます。ダウンロードが完了したら、ダウンロードパッケージを解凍します。次にIDEAで新しいプロジェクトを作成し、「File」、「Project Structure」、「Modules」、「Dependencies」を順にクリックし、右側の緑の「+」の下の最初のオプション「JARs or Directories」をクリックして、前に解凍したファイルを見つけ、その中のlibフォルダの下にあるSpire.XLS.jarファイルをプロジェクトにインポートします。
複数のExcelドキュメントをマージする
次に、具体的な操作手順を示します。
- Excelファイルパスから文字列配列を作成します。
- Workbookクラスのオブジェクトを作成し、新しいワークブックを作成します。Workbook.Worksheets.Clear()メソッドを使用してワークブック内のデフォルトのワークシートを消去します。
- 別の一時的なWorkbookクラスのオブジェクトを作成します。
- 文字列配列をループし、Workbook.loadFromFile()メソッドを使用して、現在のワークブックを一時的なWorkbookのオブジェクトにロードします。
- すべてのシートをループし、Workbook.Worksheets.AddCopy()メソッドを使用して、現在のブック内のすべてのシートを新しいブックにコピーします。
- Workbook.saveToFileメソッドを使用して、結果文書を保存します。
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import com.spire.xls.WorksheetCopyType;
public class MergeExcels {
public static void main(String[] args) {
// Excelファイルパスから文字列配列を作成する
String[] inputFiles = new String[]{
"C:\\Users\\Administrator\\Desktop\\file1.xlsx",
"C:\\Users\\Administrator\\Desktop\\file2.xlsx"};
// Workbookクラスのオブジェクトを作成する
Workbook newBook = new Workbook();
//デフォルトのワークシートを消去する
newBook.getWorksheets().clear();
//別の一時的なWorkbookクラスのオブジェクトを作成する
Workbook tempBook = new Workbook();
//文字列配列をループする
for (String file : inputFiles)
{
//ワークブックを一時的なWorkbookのオブジェクトにロードする
tempBook.loadFromFile(file);
//現在のブック内のすべてのシートを新しいブックにコピーする
for (Object obj : tempBook.getWorksheets())
{
Worksheet sheet= (Worksheet) obj;
newBook.getWorksheets().addCopy(sheet, WorksheetCopyType.CopyAll);
}
}
//結果文書を保存する
newBook.saveToFile("MergeFiles.xlsx", ExcelVersion.Version2013);
}
}