poi导入excel到数据库
时间: 2023-08-29 09:13:49 浏览: 44
要将 Excel 中的数据导入到数据库,可以使用 Apache POI 库来读取 Excel 文件中的数据,然后使用 JDBC 将数据写入到数据库中。
以下是一个简单的示例程序,演示如何使用 POI 读取 Excel 文件中的数据,并将数据插入到 MySQL 数据库中:
```java
import java.io.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
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.ss.usermodel.WorkbookFactory;
public class ExcelToDatabase {
public static void main(String[] args) {
String jdbcUrl = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "password";
String excelFilePath = "data.xlsx";
String tableName = "data";
try (Connection connection = DriverManager.getConnection(jdbcUrl, username, password)) {
FileInputStream inputStream = new FileInputStream(new File(excelFilePath));
Workbook workbook = WorkbookFactory.create(inputStream);
Sheet sheet = workbook.getSheetAt(0);
String columns = "";
String values = "";
for (Row row : sheet) {
if (row.getRowNum() == 0) {
// 第一行是表头,获取列名
for (Cell cell : row) {
columns += cell.getStringCellValue() + ",";
}
columns = columns.substring(0, columns.length() - 1);
} else {
// 其他行是数据,获取数据值
for (Cell cell : row) {
values += "'" + cell.getStringCellValue() + "',";
}
values = values.substring(0, values.length() - 1);
String sql = "INSERT INTO " + tableName + " (" + columns + ") VALUES (" + values + ")";
PreparedStatement statement = connection.prepareStatement(sql);
statement.executeUpdate();
values = "";
}
}
workbook.close();
System.out.println("导入成功!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在上述示例中,我们首先从 Excel 文件中读取数据,然后获取表头和数据值,拼接 SQL 语句,并将数据插入到数据库中。
需要注意的是,这只是一个简单的示例程序,实际应用中还需要做一些异常处理、数据类型转换等操作。