Учебники

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

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

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

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

EMP ID EMP NAME DEG ОПЛАТА ТРУДА DEPT
1201 Гопал Технический менеджер 45000 ЭТО
1202 Маниша Корректор 45000 тестирование
1203 Masthanvali Технический писатель 45000 ЭТО
1204 Киран Админ 40000 HR
1205 Kranthi Оператор 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 выглядит следующим образом.