0
0

More than 1 year has passed since last update.

JavaでデータベースからExcelにデータを書き出す方法

Posted at

Excel は、大量のデータを分類、構造化、分析、操作するために広く使用されているツールです。データベース内のデータを分析する必要がある場合、まずデータをExcelのワークシートに変換します。今回は、無料の Free Spire.XLS for Java を使って、AccessのテーブルからExcelにデータをエクスポートする方法を紹介します。

【依存関係の追加】

この方法は、無料のFree Spire.XLS for Javaが必要ですので、先にjarファイルをインポートしてください。

1. Maven

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. 公式サイトよりJarファイルをダウンロード

まず、Free Spire.XLS for Java の公式サイトよりzipファイルをダウンロードします。zipファイルを解凍し、libフォルダの下にあるSpire.Xls.jarファイルを依存関係としてプロジェクトにインポートしてください。

データベースのデータをExcelに書き出す

Spire.XLS for Javaを使用して、データベースからExcelへデータを書き出す手順を説明します。

  • Workbook クラスのオブジェクトを作成します。
  • Workbook.getWorksheets().get() メソッドを使用して、最初のワークシートを取得します。
  • DataTable クラスのオブジェクトを作成します。
  • データベースに接続し、データベースから DataTable にデータを書き出します。
  • Worksheet.insertDataTable() メソッドを使用して、DataTable をワークシートに書き込む。
  • Workbook.saveToFile() メソッドを使用してワークブックを保存します。

Java

import com.spire.data.table.DataTable;
import com.spire.data.table.common.JdbcAdapter;
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;

import java.sql.*;

public class exportDataFromDatabaseToExcel {

    public static void main(String[] args) {

        //Workbookクラスのオブジェクトを作成する
        Workbook wb = new Workbook();

        //最初のワークシートを取得する
        Worksheet sheet = wb.getWorksheets().get(0);

        //DataTableクラスのオブジェクトを作成する
        DataTable dataTable = new DataTable();

        //データベースに接続する
        String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb, *.accdb)};"
                + "DBQ=C:/Users/Allen/Desktop/データベース.mdb";
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            try {
                Connection conn = DriverManager.getConnection(url);
                Statement sta = conn.createStatement();

                //データベースからテーブルを選択する
                ResultSet resultSet = sta.executeQuery("select * from テーブル1");
                JdbcAdapter jdbcAdapter = new JdbcAdapter();

                //データベースからDataTableにデータを書き出す
                jdbcAdapter.fillDataTable(dataTable, resultSet);

            } catch (SQLException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        //ワークシートにDataTableを書き込む
        sheet.insertDataTable(dataTable, true, 1, 1);

        //列幅を自動に調整する
        sheet.getAllocatedRange().autoFitColumns();

        //Excelファイルに保存する
        wb.saveToFile("Excelへの書き出し.xlsx", ExcelVersion.Version2016);
    }
}

【出力されるExcelファイル】

この記事では、データベースからExcelワークシートにデータをインポートする方法について説明します。この記事を読んでもまだ問題がある場合、またはSpire.XLS for Javaについてもっと知りたい場合は、Spire.XLS Forumに移動してください。

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