0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JavaでExcelシートにデータを書き込む

Posted at

データ処理と管理の分野において、Excel はその強力な機能と幅広い応用から、データの保存と表示の重要なツールとなっています。Java 開発の過程では、テキスト、数値、配列、DataTable データなど、さまざまなタイプのデータを Excel ファイルに書き込み、さまざまなビジネスニーズに対応する必要がしばしばあります。
この記事では、無料の Java ライブラリを使用して、プログラムからExcel のセルにデータを書き込む方法を紹介します。

無料の Java ライブラリをインストールする

コーディングを始める前に、プロジェクトに Free Spire.XLS for Java という無料のライブラリをインストールする必要があります。このライブラリはさまざまな Excel 処理機能をサポートしており、Excel ファイルの作成、読み取り、修正、変換を簡単に行うことができます。
Maven プロジェクトを使用している場合は、pom.xml に以下の依存関係を追加することができます。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependency>
    <groupId>e-iceblue</groupId>
    <artifactId>spire.xls.free</artifactId>
    <version>5.3.0</version>
</dependency>

また、以下のリンクから製品パッケージをダウンロードし、手動でJARパッケージをインポートすることもできます。

Java サンプル:Excel セルにテキストまたは数値を書き込む

指定したセルにデータを書き込む方法は 2 通りあります。

  • テキストを書き込む:Worksheet.get().setText() または Worksheet.get().setValue() メソッドを使用します。
  • 数値を書き込む:Worksheet.get().setNumberValue() メソッドを使用します。
import com.spire.xls.*;

public class WriteTextNumber {

    public static void main(String[] args) {

        // Excelワークブックを作成する  
        Workbook workbook = new Workbook();

        // その中の最初のワークシートを取得する
        Worksheet worksheet = workbook.getWorksheets().get(0);

        // 指定されたセルにデータを書き込む
        worksheet.get("A1").setText("商品ID");
        worksheet.get("B1").setText("商品名");
        worksheet.get("C1").setValue("在庫状況");
        worksheet.get("D1").setValue("数量");

        worksheet.get("A2").setValue("SP-001");
        worksheet.get("B2").setText("商品A");
        worksheet.get("C2").setText("在庫補充");
        worksheet.get("D2").setNumberValue(80);

        worksheet.get("A3").setValue("SP-002");
        worksheet.get("B3").setText("商品B");
        worksheet.get("C3").setText("使用中");
        worksheet.get("D3").setNumberValue(102);

        // フォントスタイルを設定する  
        worksheet.get("A1:D1").getStyle().getFont().isBold(true);
        worksheet.get("A1:D3").getStyle().getFont().setSize(11);

        // Excelファイルを保存する
        workbook.saveToFile("WriteData.xlsx", ExcelVersion.Version2016);
    }
}

WriteExcelTextNumber.png

Java サンプル:配列をExcelシートに書き込む

一次元または二次元配列については、Worksheet.insertArray(Object[][] objectArray, int firstRow, int firstColumn) メソッドを使用して、配列内のデータをワークシートの指定位置に挿入することができます。

import com.spire.xls.*;

public class WriteArrayToWorksheet {

    public static void main(String[] args) {

        // Excelワークブックを作成する  
        Workbook workbook = new Workbook();

        // その中の最初のワークシートを取得する
        Worksheet worksheet = workbook.getWorksheets().get(0);

        // 二次元配列の作成
        String[][] twoDimensionalArray = new String[][]{
                {"SKU", "説明", "購入日", "購入価格"},
                {"SP7875", "品目 1", "2024/1/31", "2000"},
                {"TR87680", "品目 2", "2024/3/10", "1500"},
                {"MK676554", "品目 3", "2024/3/25", "560"}
        };

        // ワークシートに配列を書き込む
        worksheet.insertArray(twoDimensionalArray, 1, 1);

        // フォントスタイルの設定
        worksheet.get("A1:D1").getStyle().getFont().isBold(true);
        worksheet.get("A1:D4").getStyle().getFont().setSize(11);

        // Excelファイルを保存する
        workbook.saveToFile("InsertArrays.xlsx", ExcelVersion.Version2016);
    }
}

WriteExcelArray.png

Java サンプル:DataTable を Excel シートに書き込む

DataTable クラスを定義してデータテーブルを表現し、データ行を追加することができます。その後、Worksheet.insertDataTable(DataTable dataTable, boolean columnHeaders, int firstRow, int firstColumn, boolean transTypes) メソッドを使用して、DataTable のデータをワークシートの指定位置に挿入します。

import com.spire.data.table.DataRow;
import com.spire.data.table.DataTable;
import com.spire.xls.*;

import java.text.DecimalFormat;

public class WriteDataTableToWorksheet {

    public static void main(String[] args) throws Exception {

        // Excelワークブックを作成する  
        Workbook workbook = new Workbook();

        // その中の最初のワークシートを取得する
        Worksheet worksheet = workbook.getWorksheets().get(0);

        // DataTableオブジェクトの作成
        DataTable dataTable = new DataTable();
        dataTable.getColumns().add("シリアル番号", Integer.class);
        dataTable.getColumns().add("商品", String.class);
        dataTable.getColumns().add("単価", DecimalFormat.class);

        // 行を作成し、データを追加する
        DataRow dr = dataTable.newRow();
        dr.setInt(0, 556788);
        dr.setString(1, "データケーブル");
        dr.setString(2, "8.5");
        dataTable.getRows().add(dr);

        dr = dataTable.newRow();
        dr.setInt(0, 768087);
        dr.setString(1, "ワイヤレスマウス");
        dr.setString(2, "59.9");
        dataTable.getRows().add(dr);

        dr = dataTable.newRow();
        dr.setInt(0, 336813);
        dr.setString(1, "ネットワークケーブル");
        dr.setString(2, "15.5");
        dataTable.getRows().add(dr);

        // データ・テーブルをワークシートに書き込む
        worksheet.insertDataTable(dataTable, true, 1, 1, true);

        // フォントスタイルの設定
        worksheet.get("A1:D1").getStyle().getFont().isBold(true);
        worksheet.get("A1:D4").getStyle().getFont().setSize(11);

        // 保存Excel文件
        workbook.saveToFile("WriteDataTable.xlsx", ExcelVersion.Version2016);
    }
}

WriteExcelDatatable.png

まとめ

上記の例を使って、Java プログラミング言語を通じてさまざまなデータを Excel テーブルに書き込むことができます。
Free Spire.XLS for Java は無料のライブラリで、Excel 内のデータのさらなる分析や、チャートなどの要素を挿入することもサポートしています。ご興味があれば、以下のオンラインドキュメントを確認してください。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?