使用JAVA代码根据一个excel文件批量生成一个SQL 初始化脚本文件
时间: 2024-03-05 14:55:21 浏览: 340
可以使用Apache POI库来读取Excel文件,然后使用Java代码生成SQL初始化脚本文件。
以下是一个简单的示例代码,可以根据Excel文件中的数据生成SQL脚本文件:
```java
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelToSql {
public static void main(String[] args) {
String fileName = "data.xlsx"; // Excel文件路径
String tableName = "users"; // 表名
String outputFile = "init.sql"; // 输出文件名
try {
// 读取Excel文件
Workbook workbook = new XSSFWorkbook(fileName);
Sheet sheet = workbook.getSheetAt(0);
// 获取列名和类型
Row headerRow = sheet.getRow(0);
int numColumns = headerRow.getLastCellNum();
Map<String, String> columnTypes = new HashMap<>();
for (int i = 0; i < numColumns; i++) {
Cell cell = headerRow.getCell(i);
String columnName = cell.getStringCellValue();
String columnType = "VARCHAR(255)"; // 默认类型为VARCHAR(255)
columnTypes.put(columnName, columnType);
}
// 生成SQL脚本
StringBuilder sql = new StringBuilder();
sql.append("CREATE TABLE ").append(tableName).append(" (");
for (int i = 0; i < numColumns; i++) {
Cell cell = headerRow.getCell(i);
String columnName = cell.getStringCellValue();
String columnType = columnTypes.get(columnName);
sql.append(columnName).append(" ").append(columnType).append(",");
}
sql.deleteCharAt(sql.length() - 1); // 删除最后一个逗号
sql.append(");\n");
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
Row row = sheet.getRow(i);
sql.append("INSERT INTO ").append(tableName).append(" VALUES (");
for (int j = 0; j < numColumns; j++) {
Cell cell = row.getCell(j);
if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
sql.append(cell.getNumericCellValue()).append(",");
} else {
sql.append("'").append(cell.getStringCellValue()).append("',");
}
}
sql.deleteCharAt(sql.length() - 1); // 删除最后一个逗号
sql.append(");\n");
}
// 写入输出文件
FileWriter writer = new FileWriter(outputFile);
writer.write(sql.toString());
writer.close();
System.out.println("SQL脚本文件已生成!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个示例代码中,我们使用了Apache POI库来读取Excel文件,然后根据Excel数据生成SQL脚本文件。具体过程如下:
1. 读取Excel文件,获取第一个Sheet。
2. 获取Excel中的列名和类型,生成CREATE TABLE语句。
3. 遍历Excel中的每一行,生成INSERT INTO语句。
4. 将所有SQL语句写入输出文件中。
注意,这个示例代码仅支持读取`.xlsx`格式的Excel文件。如果你使用的是`.xls`格式的文件,需要使用`HSSFWorkbook`类代替`XSSFWorkbook`类。同时,在实际应用中,你也需要根据你的具体需求进行代码的修改和优化。
阅读全文