POI Apache - Database

Questo capitolo spiega come la libreria POI interagisce con un database. Con l'aiuto di JDBC, puoi recuperare i dati da un database e inserirli in un foglio di calcolo utilizzando la libreria POI. Consideriamo il database MySQL per le operazioni SQL.

Scrivi in ​​Excel dal database

Supponiamo che venga chiamata la seguente tabella di dati dei dipendenti emp_tbl deve essere recuperato dal database MySQL test.

ID EMP NOME EMP DEG STIPENDIO DIPARTIMENTO
1201 Gopal Responsabile tecnico 45000 IT
1202 Manisha Lettore di prove 45000 Test
1203 Masthanvali Scrittore tecnico 45000 IT
1204 Kiran Hr Admin 40000 HR
1205 Kranthi Op Admin 30000 Admin

Utilizzare il codice seguente per recuperare i dati da un database e inserire lo stesso in un foglio di calcolo.

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

Salviamo il codice sopra come ExcelDatabase.java. Compilarlo ed eseguirlo dal prompt dei comandi come segue.

$javac ExcelDatabase.java
$java ExcelDatabase

Genererà un file Excel denominato exceldatabase.xlsx nella directory corrente e visualizzare il seguente output sul prompt dei comandi.

exceldatabase.xlsx written successfully

Il exceldatabase.xlsx il file ha il seguente aspetto.