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.