Apache POI - Baza danych

W tym rozdziale wyjaśniono, w jaki sposób biblioteka POI współdziała z bazą danych. Za pomocą JDBC można pobierać dane z bazy danych i wstawiać je do arkusza kalkulacyjnego przy użyciu biblioteki POI. Rozważmy bazę danych MySQL dla operacji SQL.

Napisz do Excela z bazy danych

Załóżmy następującą tabelę danych pracowników o nazwie emp_tbl ma zostać pobrany z bazy danych MySQL test.

EMP ID NAZWA EMP DEG WYNAGRODZENIE DEPT
1201 Gopal Menedżer techniczny 45000 TO
1202 Manisha Czytnik dowodów 45000 Testowanie
1203 Masthanvali Pisarz techniczny 45000 TO
1204 Kiran Hr Admin 40000 HR
1205 Kranthi Op Admin 30000 Admin

Użyj poniższego kodu, aby pobrać dane z bazy danych i wstawić je do arkusza kalkulacyjnego.

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

Zapiszmy powyższy kod jako ExcelDatabase.java. Skompiluj i uruchom go z wiersza polecenia w następujący sposób.

$javac ExcelDatabase.java
$java ExcelDatabase

Wygeneruje plik Excel o nazwie exceldatabase.xlsx w bieżącym katalogu i wyświetl następujące dane wyjściowe w wierszu polecenia.

exceldatabase.xlsx written successfully

Plik exceldatabase.xlsx plik wygląda następująco.