Apache POI - Base de données

Ce chapitre explique comment la bibliothèque POI interagit avec une base de données. Avec l'aide de JDBC, vous pouvez récupérer des données d'une base de données et insérer ces données dans une feuille de calcul à l'aide de la bibliothèque POI. Considérons la base de données MySQL pour les opérations SQL.

Écrire dans Excel à partir de la base de données

Supposons que le tableau de données des employés suivant appelé emp_tbl doit être récupéré de la base de données MySQL test.

ID EMP NOM EMP DEG UN SALAIRE DEPT
1201 Gopal Directeur technique 45 000 IL
1202 Manisha Lecteur d'épreuves 45 000 Essai
1203 Masthanvali Rédacteur technique 45 000 IL
1204 Kiran Administrateur RH 40000 HEURE
1205 Kranthi Administrateur des opérations 30000 Administrateur

Utilisez le code suivant pour récupérer des données à partir d'une base de données et les insérer dans une feuille de calcul.

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

Sauvegardons le code ci-dessus sous ExcelDatabase.java. Compilez et exécutez-le à partir de l'invite de commande comme suit.

$javac ExcelDatabase.java
$java ExcelDatabase

Il générera un fichier Excel nommé exceldatabase.xlsx dans votre répertoire actuel et affichez la sortie suivante sur l'invite de commande.

exceldatabase.xlsx written successfully

le exceldatabase.xlsx Le fichier se présente comme suit.