当前位置: 首页 > news >正文

从 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 语句,从而简化了数据导入的过程。希望这篇文章对你有所帮助!

http://www.lryc.cn/news/501506.html

相关文章:

  • 从0到1实现项目Docker编排部署
  • Vue框架入门
  • vue入门实战(二)父子组件显示,参数传递
  • 【Linux】Ubuntu:安装系统后配置
  • springboot-查看版本和版本所需JDK
  • fuxa搭建与使用(web组态)
  • 中间件--MongoDB部署及初始化js脚本(docker部署,docker-entrypoint-initdb.d,数据迁移,自动化部署)
  • C语言期末考试——常见考题(模拟考)
  • 流量过滤与路径转发控制
  • Ungoogled Chromium127编译指南 Windows篇 - 获取源码(七)
  • k8s 之 StatefulSet
  • iPhone 17 Air基本确认,3个大动作
  • 鸿蒙实现应用通知
  • ElasticSearch常见的索引_集群的备份与恢复方案
  • vue图片之放大、缩小、1:1、刷新、左切换、全屏、右切换、左旋咋、右旋转、x轴翻转、y轴翻转
  • Docker多架构镜像构建踩坑记
  • “pinn是无网格的”???
  • 换一个ip地址是什么意思?换一个网络ip地址会变吗
  • JavaWeb学习--cookie和session,实现登录的记住我和验证码功能
  • 深度学习:基于MindSpore的极简风大模型微调
  • 【LeetCode力扣热题100】【LeetCode 1】两数之和
  • 定制链接类名,两类跳转传参,vue路由重定向,404,模式设置
  • 【ArcGIS微课1000例】0135:自动生成标识码(长度不变,前面自动加0)
  • ISO45001职业健康安全管理体系认证流程
  • VueRouter路由
  • 性能测试攻略(一):需求分析
  • 【24年新算法时间序列预测】黑翅鸢BKA优化Transformer时间序列预测(评估指标全,出图多)
  • YOLOv8改进,YOLOv8引入CARAFE轻量级通用上采样算子,助力模型涨点
  • ZooKeeper节点扩容
  • 深度学习的unfold操作