Apache POI - Base de datos

Este capítulo explica cómo interactúa la biblioteca de puntos de interés con una base de datos. Con la ayuda de JDBC, puede recuperar datos de una base de datos e insertar esos datos en una hoja de cálculo utilizando la biblioteca de puntos de interés. Consideremos la base de datos MySQL para operaciones SQL.

Escribir en Excel desde la base de datos

Asumamos la siguiente tabla de datos de empleados llamada emp_tbl se recuperará de la base de datos MySQL test.

ID de EMP NOMBRE EMP DEG SALARIO DEPT
1201 Gopal Gerente técnico 45000 ESO
1202 Manisha Lector de pruebas 45000 Pruebas
1203 Masthanvali Escritor técnico 45000 ESO
1204 Kiran Administrador de recursos humanos 40000 HORA
1205 Kranthi Administrador de operaciones 30000 Administración

Use el siguiente código para recuperar datos de una base de datos e insertarlos en una hoja de cálculo.

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

Guardemos el código anterior como ExcelDatabase.java. Compílelo y ejecútelo desde el símbolo del sistema de la siguiente manera.

$javac ExcelDatabase.java
$java ExcelDatabase

Generará un archivo de Excel llamado exceldatabase.xlsx en su directorio actual y muestre la siguiente salida en el símbolo del sistema.

exceldatabase.xlsx written successfully

los exceldatabase.xlsx archivo tiene el siguiente aspecto.