自学内容网 自学内容网

从 Excel 文件中读取数据生成 SQL 语句[快捷main方法]

从 Excel 文件中读取数据生成 SQL 语句的实现

在日常工作中,我们经常需要从 Excel 文件中提取数据,并将其转换为 SQL 插入语句,以便于将数据导入到数据库中。在这篇文章中,我将展示如何使用 Java 来实现这一需求。

项目需求

我们有一个 Excel 文件,里面包含了供应商的信息。我们的目标是读取这个 Excel 文件并将每一行数据转换为一条 SQL INSERT 语句,然后将这些语句写入到一个文本文件中,以便后续执行。

所需工具

  • Java 开发环境(JDK)
  • Apache POI 库,用于处理 Excel 文件

实现步骤

1. 添加依赖

首先,我们需要在项目中添加 Apache POI 库。如果你使用的是 Maven 项目,可以在 pom.xml 中添加以下依赖:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.2</version> <!-- 确保版本与最新版本一致 -->
</dependency>
2. 编写 Java 代码

以下是我们的 Java 程序,用于读取 Excel 文件并生成 SQL:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;

public class ExcelToSqlConverter {
    public static void main(String[] args) {
        String excelFilePath = "path/to/your/excel/file.xlsx"; // Excel 文件路径
        String outputFilePath = "path/to/your/output/file.sql"; // 输出文本文件路径

        try (FileInputStream fis = new FileInputStream(excelFilePath);
             Workbook workbook = new XSSFWorkbook(fis);
             FileWriter writer = new FileWriter(outputFilePath)) {

            Sheet sheet = workbook.getSheetAt(0); // 读取第一个工作表

            // 遍历 Excel 行
            for (Row row : sheet) {
                // 跳过表头
                if (row.getRowNum() == 0) {
                    continue;
                }

                // 读取单元格数据
                String supplierCode = row.getCell(0).getStringCellValue();
                String supplierName = row.getCell(1).getStringCellValue();
                String accountName = row.getCell(2).getStringCellValue();
                String bankNumber = row.getCell(3).getStringCellValue();
                String supplierAccount = row.getCell(4).getStringCellValue();

                // 创建 SQL 插入语句
                String sql = "INSERT INTO supplier_maintenance (pk_uuid, sysisdelete, syscreatedate, supplier_code, supplier_name, supplier_account, bank_name, bank_number) VALUES ("
                        + "md5(random()::text || clock_timestamp()::text), '0', '2024-12-09 21:21:21', '"
                        + supplierCode + "', '"
                        + supplierName + "', '"
                        + supplierAccount + "', '"
                        + accountName + "', '"
                        + bankNumber + "');\n";

                // 写入到文本文件
                writer.write(sql);
            }

        } catch (IOException e) {
            throw new RuntimeException("Error processing the Excel file", e);
        }
    }
}

代码解释

  1. 文件路径:修改 excelFilePathoutputFilePath 为你自己的文件路径。
  2. Apache POI:使用 FileInputStreamWorkbook 来读取 Excel 文件。XSSFWorkbook 用于处理 .xlsx 格式的文件。
  3. 遍历行:我们跳过了表头(第一行),然后对每一行的数据生成 SQL 语句。
  4. 写入文件:使用 FileWriter 将生成的 SQL 写入到一个文本文件中。

注意事项

  • 确保 Excel 文件的格式正确,列的顺序与代码中的列号一致。
  • 处理 Excel 操作时,务必关闭文件流以避免资源泄漏。
  • 处理字符串时要小心 SQL 注入问题。在生产环境中,建议使用参数化 SQL 以保证安全。

总结

通过这个简单的程序,我们可以高效地将 Excel 中的数据转换为 SQL 语句,从而简化了数据导入的过程。希望这篇文章对你有所帮助!


原文地址:https://blog.csdn.net/m0_47905795/article/details/144372741

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!