从 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);}}
}
代码解释
- 文件路径:修改
excelFilePath
和outputFilePath
为你自己的文件路径。 - Apache POI:使用
FileInputStream
和Workbook
来读取 Excel 文件。XSSFWorkbook
用于处理.xlsx
格式的文件。 - 遍历行:我们跳过了表头(第一行),然后对每一行的数据生成 SQL 语句。
- 写入文件:使用
FileWriter
将生成的 SQL 写入到一个文本文件中。
注意事项
- 确保 Excel 文件的格式正确,列的顺序与代码中的列号一致。
- 处理 Excel 操作时,务必关闭文件流以避免资源泄漏。
- 处理字符串时要小心 SQL 注入问题。在生产环境中,建议使用参数化 SQL 以保证安全。
总结
通过这个简单的程序,我们可以高效地将 Excel 中的数据转换为 SQL 语句,从而简化了数据导入的过程。希望这篇文章对你有所帮助!