ApachePOI-データベース

この章では、POIライブラリがデータベースとどのように相互作用するかについて説明します。JDBCを使用すると、データベースからデータを取得し、POIライブラリを使用してそのデータをスプレッドシートに挿入できます。SQL操作用のMySQLデータベースについて考えてみましょう。

データベースからExcelに書き込む

次の従業員データテーブルを想定します。 emp_tbl MySQLデータベースから取得されます test

EMP ID EMP名 給料 部門
1201 ゴパル 技術管理者 45000 それ
1202 マニシャ 校正者 45000 テスト
1203 マスタンバリ テクニカルライター 45000 それ
1204 キラン 時間管理者 40000 人事
1205 クランティ 運用管理者 30000 管理者

次のコードを使用して、データベースからデータを取得し、それをスプレッドシートに挿入します。

import java.io.File;
import java.io.FileOutputStream;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelDatabase {
   public static void main(String[] args) throws Exception {
      Class.forName("com.mysql.jdbc.Driver");
      Connection connect = DriverManager.getConnection( 
         "jdbc:mysql://localhost:3306/test" , 
         "root" , 
         "root"
      );
      
      Statement statement = connect.createStatement();
      ResultSet resultSet = statement.executeQuery("select * from emp_tbl");
      XSSFWorkbook workbook = new XSSFWorkbook(); 
      XSSFSheet spreadsheet = workbook.createSheet("employe db");
      
      XSSFRow row = spreadsheet.createRow(1);
      XSSFCell cell;
      cell = row.createCell(1);
      cell.setCellValue("EMP ID");
      cell = row.createCell(2);
      cell.setCellValue("EMP NAME");
      cell = row.createCell(3);
      cell.setCellValue("DEG");
      cell = row.createCell(4);
      cell.setCellValue("SALARY");
      cell = row.createCell(5);
      cell.setCellValue("DEPT");
      int i = 2;

      while(resultSet.next()) {
         row = spreadsheet.createRow(i);
         cell = row.createCell(1);
         cell.setCellValue(resultSet.getInt("eid"));
         cell = row.createCell(2);
         cell.setCellValue(resultSet.getString("ename"));
         cell = row.createCell(3);
         cell.setCellValue(resultSet.getString("deg"));
         cell = row.createCell(4);
         cell.setCellValue(resultSet.getString("salary"));
         cell = row.createCell(5);
         cell.setCellValue(resultSet.getString("dept"));
         i++;
      }

      FileOutputStream out = new FileOutputStream(new File("exceldatabase.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("exceldatabase.xlsx written successfully");
   }
}

上記のコードを次のように保存しましょう ExcelDatabase.java。次のようにコマンドプロンプトからコンパイルして実行します。

$javac ExcelDatabase.java
$java ExcelDatabase

名前の付いたExcelファイルを生成します exceldatabase.xlsx 現在のディレクトリで、コマンドプロンプトに次の出力を表示します。

exceldatabase.xlsx written successfully

ザ・ exceldatabase.xlsx ファイルは次のようになります。