Apache-poi-database

提供:Dev Guides
移動先:案内検索

Apache POI-データベース

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

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

*emp_tbl* という次の従業員データテーブルがMySQLデータベース *test* から取得されると仮定します。
EMP ID EMP NAME DEG SALARY DEPT
1201 Gopal Technical Manager 45000 IT
1202 Manisha Proof reader 45000 Testing
1203 Masthanvali Technical Writer 45000 IT
1204 Kiran Hr Admin 40000 HR
1205 Kranthi Op Admin 30000 Admin

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

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

現在のディレクトリに exceldatabase.xlsx という名前のExcelファイルが生成され、コマンドプロンプトに次の出力が表示されます。

exceldatabase.xlsx written successfully
*exceldatabase.xlsx* ファイルは次のようになります。

Excelデータベース