Apache POI - Cơ sở dữ liệu

Chương này giải thích cách thư viện POI tương tác với cơ sở dữ liệu. Với sự trợ giúp của JDBC, bạn có thể lấy dữ liệu từ cơ sở dữ liệu và chèn dữ liệu đó vào bảng tính bằng thư viện POI. Chúng ta hãy xem xét cơ sở dữ liệu MySQL cho các hoạt động SQL.

Viết vào Excel từ Cơ sở dữ liệu

Hãy giả sử bảng dữ liệu nhân viên sau được gọi là emp_tbl sẽ được truy xuất từ ​​cơ sở dữ liệu MySQL test.

ID EMP EMP NAME DEG TIỀN LƯƠNG CHẾT
1201 Gopal Giám đốc kỹ thuật 45000 IT
1202 Manisha Trình đọc bằng chứng 45000 Thử nghiệm
1203 Masthanvali Người viết kỹ thuật 45000 IT
1204 Kiran Hr quản trị viên 40000 Nhân sự
1205 Kranthi Quản trị viên Op 30000 quản trị viên

Sử dụng mã sau để truy xuất dữ liệu từ cơ sở dữ liệu và chèn dữ liệu tương tự vào bảng tính.

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");
   }
}

Hãy để chúng tôi lưu mã trên dưới dạng ExcelDatabase.java. Biên dịch và thực thi nó từ dấu nhắc lệnh như sau.

$javac ExcelDatabase.java
$java ExcelDatabase

Nó sẽ tạo một tệp Excel có tên exceldatabase.xlsx trong thư mục hiện tại của bạn và hiển thị đầu ra sau trên dấu nhắc lệnh.

exceldatabase.xlsx written successfully

Các exceldatabase.xlsx tệp trông như sau.