チュートリアル

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

チュートリアル»Java»Spire.XLS for Java»変換»Java で CSV を Excel(XLSX/XLS)に変換する:書式付きで簡単変換
2025-08-01

Java で CSV を Excel(XLSX/XLS)に変換する:書式付きで簡単変換

Java コードで CSV を Excel に変換し、テンプレートと書式を適用

Java で開発を行う中で、CSV ファイルを Excel に変換する 作業は、レポート作成やデータ分析、ファイル変換ツールなど、さまざまなシーンで頻繁に求められます。手動で CSV をパースすることも可能ですが、コードが煩雑になりやすく、書式の制御も困難です。
その点、Spire.XLS for Java のような Excel 専用ライブラリを活用することで、レイアウトやスタイルの制御、テンプレートの活用、複数 CSV の統合 などを、シンプルなコードで実現できます。

このチュートリアルでは、Java で CSV を Excel に変換するさまざまな方法を紹介します。基本的な変換から、書式設定、テンプレートの利用、複数 CSV のマージまでを網羅しています。

目次

Spire.XLS を Java プロジェクトに導入する

CSV を Excel に変換する前に、Spire.XLS for Java をプロジェクトに追加しましょう。XLS と XLSX の両形式に対応し、Microsoft Office に依存せずに Excel ファイルを操作できます。

Maven で導入する

<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>15.6.3</version>
    </dependency>
</dependencies>

JAR ファイルを手動で追加する

Spire.XLS for Java をダウンロード し、JAR ファイルをクラスパスに追加します。小規模プロジェクトには Free Spire.XLS for Java の利用も可能です。

Java で CSV ファイルを Excel に変換する

最も基本的な使い方は、1 つの CSV ファイルを XLSX または XLS に変換することです。Spire.XLS を使えば、loadFromFile()saveToFile() の 2 つのメソッドだけで簡単に変換が可能です。

import com.spire.xls.*;

public class CsvToXlsx {
    public static void main(String[] args) {
        Workbook workbook = new Workbook();
        workbook.loadFromFile("data.csv", ",");
        workbook.saveToFile("output.xlsx", ExcelVersion.Version2013);
    }
}

.xls 形式で保存したい場合は、ExcelVersion.Version97to2003 を使用します。

以下は、CSVをExcelファイルに変換した後の出力ファイルです。

JavaとSpire.XLSを使用してCSVからExcelファイルに変換

また、区切り文字や開始行・列も指定できるため、タイトル付き CSV やレイアウトが決まっているシートにも対応できます。

workbook.loadFromFile("data_semicolon.csv", ";", 3, 2);

Java で Excel 出力に書式を適用する

レポートや顧客向けドキュメントを出力する際には、見やすさや印象のために書式の適用が欠かせません。Spire.XLS では、セルフォント、背景色、数値書式、列幅の自動調整 など、多彩なスタイル制御が可能です。

スタイル適用と列幅自動調整の例

import com.spire.xls.*;

import java.awt.*;

public class CsvToXlsx {
    public static void main(String[] args) {
        Workbook workbook = new Workbook();
        workbook.loadFromFile("data.csv", ",");

        Worksheet sheet = workbook.getWorksheets().get(0);

        // ヘッダー行の書式設定
        CellStyle headerStyle = workbook.getStyles().addStyle("Header");
        headerStyle.getFont().isBold(true);
        headerStyle.setKnownColor(ExcelColors.LightYellow);
        for (int col = 1; col <= sheet.getLastColumn(); col++) {
            sheet.getCellRange(1, col).setStyle(headerStyle);
        }

        // 数値列の書式設定
        // セルの値の型を数値に変換します(デフォルトでは、すべてのセルの書式がテキストに設定されます)
        for (int row = 2; row <= sheet.getLastRow(); row++) {
            sheet.getCellRange(row, 3).setNumberValue(Double.parseDouble(sheet.getCellRange(row, 3).getText()));
        }
        CellStyle numStyle = workbook.getStyles().addStyle("Numbers");
        numStyle.setNumberFormat("#,##0.00");
        sheet.getCellRange(2, 3, sheet.getLastRow(), 3).setStyle(numStyle);

        // 枠線の設定
        sheet.getRange().borderInside(LineStyleType.Thin, Color.black);

        // フォント名を設定(自動整列のため)
        sheet.getRange().getStyle().getFont().setFontName("Yu Gothic UI");
        // 全列の幅を自動調整
        for (int i = 1; i <= sheet.getLastRow(); i++) {
            sheet.autoFitColumn(i);
        }

        workbook.saveToFile("formatted_output.xlsx", ExcelVersion.Version2013);
    }
}

以下は、フォーマットされたヘッダーと数値列を含むスタイル設定済みのExcel出力の例です。

JavaでSpire.XLSを使用して、フォーマットされたヘッダーと数値列を含むExcel出力を生成

テンプレートファイル(既存の Excel)に CSV データを挿入したい場合は、insertArray() メソッドなどで可能です。
ただし、テンプレートに挿入したデータには自動で書式は反映されないため、CellStyle で別途スタイルを設定しましょう。

複数の CSV ファイルを 1 つの Excel にまとめる

複数の CSV ファイルを扱う場合、ワークシート単位で分ける か、1 つのシートにすべてまとめる かを選べます。

オプション 1:CSV ごとに別シートに配置

import com.spire.xls.*;
import java.io.File;

public class CsvToXlsx {
    public static void main(String[] args) {
        File[] csvFiles = new File("CSVs/").listFiles((dir, name) -> name.endsWith(".csv"));
        Workbook workbook = new Workbook();
        workbook.getWorksheets().clear();

        for (File csv : csvFiles) {
            Workbook temp = new Workbook();
            temp.loadFromFile(csv.getAbsolutePath(), ",");
            workbook.getWorksheets().addCopy(temp.getWorksheets().get(0));
        }

        workbook.saveToFile("merged.xlsx", ExcelVersion.Version2016);
    }
}

各CSVファイルは、最終的なExcelファイル内のそれぞれのワークシートに配置されます。

複数のCSVファイルから作成された複数のワークシートを含むExcelワークブックを統合

オプション 2:すべての CSV データを 1 つのシートに統合

import com.spire.xls.*;
import java.io.File;

public class CsvToXlsx {
    public static void main(String[] args) {
        File[] csvFiles = new File("CSVs/").listFiles((dir, name) -> name.endsWith(".csv"));
        Workbook workbook = new Workbook();
        workbook.getWorksheets().clear();
        Worksheet sheet = workbook.getWorksheets().add("Sample");

        int startRow = 1;
        boolean isFirstFile = true;

        for (File csv : csvFiles) {
            Workbook temp = new Workbook();
            temp.loadFromFile(csv.getAbsolutePath(), ",");
            Worksheet tempSheet = temp.getWorksheets().get(0);

            int startReadRow = isFirstFile ? 1 : 2;
            isFirstFile = false;

            for (int r = startReadRow; r <= tempSheet.getLastRow(); r++) {
                for (int c = 1; c <= tempSheet.getLastColumn(); c++) {
                    sheet.getCellRange(startRow, c).setValue(tempSheet.getCellRange(r, c).getText());
                }
                startRow++;
            }
        }

        workbook.saveToFile("merged_single_sheet.xlsx", ExcelVersion.Version2016);
    }
}

以下は、すべてのCSVデータを1つのワークシートに統合した最終的なExcelシートです。

複数のCSVファイルから統合されたデータを格納した単一のExcelシート

関連チュートリアル:
Javaを使用したExcelファイルの結合と分割

トラブル対処とヒント

出力に問題がある場合は以下を確認してください:

  • 文字化けが発生する場合

CSV が UTF-8 でエンコードされているか確認してください。

  • 列が正しく分割されない場合

区切り文字(カンマやセミコロン)が一致しているか確認。

  • ファイルサイズが大きすぎる場合

複数シートに分けるなどでメモリ使用量を最適化。

  • CSV ごとに構造が異なる場合

列名や順番を事前に統一しましょう。

まとめ

単純な CSV 変換から、ビジネス文書の自動出力まで、Spire.XLS for Java は Java による Excel 生成を強力にサポートします。数行のコードで CSV から Excel(XLSX/XLS)への変換が可能で、スタイル適用やテンプレート挿入、複数 CSV の統合まで柔軟に対応できます。
自動化によって作業を効率化し、見栄えの良いプロフェッショナルな Excel ファイルを簡単に作成できます。

一時ライセンスを申請 すれば、すべての機能を無制限でお試しいただけます。

よくある質問(FAQ)

Java で CSV を XLSX に変換するには?

Workbook.loadFromFile("file.csv", ",") で読み込み、saveToFile("output.xlsx", ExcelVersion.Version2016) で保存します。

Excel 出力にスタイルを適用できますか?

はい。CellStyle を使ってフォント、色、配置、数値書式などを設定できます。

CSV データを Excel テンプレートに挿入できますか?

可能です。テンプレートファイルを読み込み、setText()insertDataTable() などで CSV 内容を挿入します。

複数の CSV を 1 つの Excel にまとめるには?

それぞれの CSV を別シートに追加するか、1 つのシートにすべてのデータを順に挿入することで対応できます。

Read 19 times