Apache POI - База данных

В этой главе объясняется, как библиотека POI взаимодействует с базой данных. С помощью JDBC вы можете извлекать данные из базы данных и вставлять эти данные в электронную таблицу с помощью библиотеки POI. Рассмотрим базу данных MySQL для операций SQL.

Запись в Excel из базы данных

Предположим, что следующая таблица данных сотрудников называется emp_tbl должен быть получен из базы данных MySQL test.

EMP ID EMP NAME DEG ЗАРПЛАТА ОТДЕЛЕНИЕ
1201 Гопал Технический менеджер 45000 ЭТО
1202 Маниша Корректор 45000 Тестирование
1203 Мастханвали Технический писатель 45000 ЭТО
1204 Kiran Hr Admin 40000 HR
1205 Кранти Op Admin 30000 Админ

Используйте следующий код, чтобы получить данные из базы данных и вставить их в электронную таблицу.

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

Сохраним приведенный выше код как ExcelDatabase.java. Скомпилируйте и выполните его из командной строки следующим образом.

$javac ExcelDatabase.java
$java ExcelDatabase

Будет создан файл Excel с именем exceldatabase.xlsx в вашем текущем каталоге и отобразите следующий вывод в командной строке.

exceldatabase.xlsx written successfully

В exceldatabase.xlsx файл выглядит следующим образом.