用Java快速将MySQL表数据导出为Excel

在开发过程中,有时候我们需要将MySQL数据库中的表数据导出为Excel文件,以便进行数据备份或数据分析。本文将介绍如何使用Java语言来实现这一功能。

准备工作

在开始之前,我们需要确保以下几点准备工作已完成:

  1. 确保已经安装了Java开发环境和MySQL数据库。
  2. 导入MySQL JDBC驱动包,以便Java程序能够连接到MySQL数据库。
  3. 导入Apache POI库,用于操作Excel文件。

代码示例

import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Workbook;

public class ExportDataToExcel {
    public static void main(String[] args) {
        String jdbcURL = "jdbc:mysql://localhost:3306/your_database";
        String username = "your_username";
        String password = "your_password";

        try (Connection conn = DriverManager.getConnection(jdbcURL, username, password)) {
            String sql = "SELECT * FROM your_table";
            
            Statement statement = conn.createStatement();
            
            ResultSet result = statement.executeQuery(sql);

            Workbook workbook = new HSSFWorkbook();
            Sheet sheet = workbook.createSheet("Sheet1");

            Row header = sheet.createRow(0);
            header.createCell(0).setCellValue("Column1");
            header.createCell(1).setCellValue("Column2");
            header.createCell(2).setCellValue("Column3");

            int rowNum = 1;
            while (result.next()) {
                Row row = sheet.createRow(rowNum++);
                row.createCell(0).setCellValue(result.getString(1));
                row.createCell(1).setCellValue(result.getString(2));
                row.createCell(2).setCellValue(result.getString(3));
            }

            FileOutputStream fileOut = new FileOutputStream("output.xls");
            workbook.write(fileOut);
            fileOut.close();

            System.out.println("Excel file has been generated!");

        } catch (Exception e) {
            System.out.println("Error: " + e.getMessage());
        }
    }
}

饼状图示例

pie
    title Data Distribution
    "A": 40
    "B": 30
    "C": 20
    "D": 10

甘特图示例

gantt
    title Project Timeline
    section Phase 1
    Task 1: 2022-01-01, 30d
    Task 2: 2022-02-01, 20d
    section Phase 2
    Task 3: 2022-03-01, 25d
    Task 4: 2022-04-01, 15d

结语

通过本文的介绍,我们学习了如何使用Java语言将MySQL表数据快速导出为Excel文件。这对于数据备份和数据分析非常有用。希望本文能够对你有所帮助,祝你在开发过程中顺利!