Apache POI - ฐานข้อมูล

บทนี้อธิบายถึงวิธีที่ไลบรารี POI โต้ตอบกับฐานข้อมูล ด้วยความช่วยเหลือของ JDBC คุณสามารถดึงข้อมูลจากฐานข้อมูลและแทรกข้อมูลนั้นลงในสเปรดชีตโดยใช้ไลบรารี POI ให้เราพิจารณาฐานข้อมูล MySQL สำหรับการดำเนินการ SQL

เขียนลงใน Excel จากฐานข้อมูล

ให้เราถือว่าตารางข้อมูลพนักงานต่อไปนี้เรียกว่า emp_tbl จะถูกดึงมาจากฐานข้อมูล MySQL test.

รหัส EMP ชื่อ EMP DEG เงินเดือน ทบ
1201 โกปาล ผู้จัดการฝ่ายเทคนิค 45000 มัน
1202 มานิชา เครื่องอ่านหลักฐาน 45000 การทดสอบ
1203 Masthanvali นักเขียนด้านเทคนิค 45000 มัน
1204 Kiran Hr Admin 40000 ชม
1205 กระท้อน Op Admin 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 ไฟล์มีลักษณะดังนี้