LoginSignup
0
0

More than 1 year has passed since last update.

Java:複数のExcelドキュメントをマージする方法

Last updated at Posted at 2022-09-16

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);
    }
}

2022-09-16_160711.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0