Apache POI - Banco de dados

Este capítulo explica como a biblioteca POI interage com um banco de dados. Com a ajuda do JDBC, você pode recuperar dados de um banco de dados e inseri-los em uma planilha usando a biblioteca POI. Vamos considerar o banco de dados MySQL para operações SQL.

Escreva no Excel a partir do banco de dados

Vamos supor a seguinte tabela de dados de funcionários chamada emp_tbl deve ser recuperado do banco de dados MySQL test.

EMP ID NOME EMP DEG SALÁRIO DEPTO
1201 Gopal Gerente técnico 45000 ISTO
1202 Manisha Leitor de prova 45000 Testando
1203 Masthanvali Escritor técnico 45000 ISTO
1204 Kiran Hr Admin 40.000 RH
1205 Kranthi Op Admin 30000 Admin

Use o código a seguir para recuperar dados de um banco de dados e inserir os mesmos em uma planilha.

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

Vamos salvar o código acima como ExcelDatabase.java. Compile e execute-o a partir do prompt de comando da seguinte maneira.

$javac ExcelDatabase.java
$java ExcelDatabase

Ele irá gerar um arquivo Excel chamado exceldatabase.xlsx em seu diretório atual e exiba a seguinte saída no prompt de comando.

exceldatabase.xlsx written successfully

o exceldatabase.xlsx arquivo tem a seguinte aparência.