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.