📜  将数据从数据库插入电子表格的Java程序

📅  最后修改于: 2022-05-13 01:55:16.225000             🧑  作者: Mango

将数据从数据库插入电子表格的Java程序

数据库是数据和信息的持久集合,以特定方式组织以便快速访问,类似地,电子表格是另一种以表格形式存储数据的方式。有两种类型的数据库,其中结构化数据库,特别是 MySQL 数据库在此处说明,LibreOffice Calc 作为电子表格工具。将数据从 MySQL 插入电子表格非常有用,因为它使不熟悉 SQL 的每个人都可以轻松查看和检索数据。使用Java处理电子表格需要使用 APACHE POI。 Apache Poi 是用于处理 Microsoft 文档的Java API。下载下面提到的与 apache 相关的 jar 文件,这将有助于我们处理电子表格。同样,JDBC 是用于将Java连接到 MySQL 的Java API。从下面给出的链接下载 mysql-connector-java-5.1.6-bin.jar 文件。

给定以下表格结构,该表格中存在的所有数据都应存储在电子表格中,表格属性作为电子表格的单元格名称。

表模式

算法:

  1. 使用数据库登录凭据打开与数据库的新连接。这是使用 getConnection() 方法完成的。 Connection 类的每个对象都代表一个到数据库的新连接。
  2. 执行 SQL 查询并存储结果。
  3. 创建一个新的工作簿 -> 工作表 -> 行。
  4. 创建与数据库表中的每一列对应的新单元格。
  5. 遍历存储的结果集并将值存储在相应的列中。

使用的内置函数的语法、参数和返回类型:

1. Connection getConnection(String URL, String username, String Password);
2. Statement createStatement();
3. ResultSet executeQuery(String sql_query);
4. XSSFSheet createSheet(String sheet_name);
5. XSSFRow createRow(int row_no);
6. XSSFCell createCell(int cell_no);
7. void setCellValue(String cell_name);
8. bool next();
9. void write(FileOutputStream output);

执行:

Java
// Java Program to Insert Data
// from a Database to a Spread Sheet
 
// Importing required modules
 
// File libraries
import java.io.File;
import java.io.FileOutputStream;
// Step 1: Importing Database modules
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
// Importing API modules
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;
 
// Main (App) class shown only
// not its Connection class
public class GFG {
 
    // Main driver method
    public static void main(String[] args) throws Exception
    {
 
        // Step 2 : Load and Register drivers
 
        // Loading drivers using forName() method
        Class.forName("com.mysql.jdbc.Driver");
 
        // Registering drivers using Driver Manager
        // Step 3: Establish. a connection
        Connection connection = DriverManager.getConnection(
            "jdbc:mysql://localhost:3306/students", "root",
            "Swapnil@123");
 
        // Step 4: Proces the statement
        // Getting data from the table details
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery(
            "select * from details");
 
        // Step 5: Execute a query
        // Create a workbook
        XSSFWorkbook workbook = new XSSFWorkbook();
 
        // Create a spreadsheet inside a workbook
        XSSFSheet spreadsheet1
            = workbook.createSheet("student db");
        XSSFRow row = spreadsheet1.createRow(1);
        XSSFCell cell;
 
        // Step 6: Process the results
        cell = row.createCell(1);
        cell.setCellValue("RollNo");
 
        cell = row.createCell(2);
        cell.setCellValue("Name");
 
        // i=2 as we will start writing from the
        // 2'nd row
        int i = 2;
 
        while (resultSet.next()) {
            row = spreadsheet1.createRow(i);
            cell = row.createCell(1);
            cell.setCellValue(resultSet.getInt("RollNo"));
 
            cell = row.createCell(2);
            cell.setCellValue(resultSet.getString("Name"));
 
            i++;
        }
 
        // Local directory on computer
        FileOutputStream output = new FileOutputStream(new File(
            "/home/swapnil/Desktop/sem9/student_database_geeks_for_geeks.xlsx"));
 
        // write
        workbook.write(output);
 
        // Step 7: Close the connection
        output.close();
 
        // Display message for successful compilation of
        // program
        System.out.println(
            "exceldatabase.xlsx written successfully");
    }
}


输出:内部输出: 在终端中生成的 SQL 表(Windows 的 CMD)反映了在创建的数据库中所做的更改,如图所示。

表格条目

外部输出:根据Java程序中提到的本地目录,这将是一个Excel文件。