java Excel导入数据库
时间: 2023-10-09 16:15:25 浏览: 96
Java可以使用Apache POI库来读取Excel文件,然后将数据导入到数据库中。
首先,在pom.xml中添加以下依赖:
```xml
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
</dependencies>
```
然后,编写Java代码来读取Excel文件:
```java
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.xssf.usermodel.XSSFWorkbook;
public class ExcelToDatabase {
public static void main(String[] args) {
String fileName = "data.xlsx";
String url = "jdbc:mysql://localhost:3306/database";
String user = "username";
String password = "password";
try (Connection conn = DriverManager.getConnection(url, user, password);
FileInputStream fis = new FileInputStream(fileName);
XSSFWorkbook workbook = new XSSFWorkbook(fis)) {
Sheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
String name = row.getCell(0).getStringCellValue();
int age = (int) row.getCell(1).getNumericCellValue();
String address = row.getCell(2).getStringCellValue();
String sql = "INSERT INTO users (name, age, address) VALUES (?, ?, ?)";
PreparedStatement statement = conn.prepareStatement(sql);
statement.setString(1, name);
statement.setInt(2, age);
statement.setString(3, address);
statement.executeUpdate();
}
System.out.println("Data imported successfully");
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
以上代码会读取Excel文件中的第一个工作表,并将每行数据插入到名为“users”的数据库表中。在插入数据之前,需要根据需要更改数据库连接URL、用户名和密码。
注意,本例中使用的是XSSFWorkbook类,这是用于处理.xlsx格式的Excel文件的类。如果要处理.xls格式的Excel文件,则需要使用HSSFWorkbook类。
另外,需要注意Excel文件中每列的数据类型,例如在本例中,第一列是字符串类型,第二列是数字类型,第三列是字符串类型。在读取单元格值时,需要使用相应的方法来获取正确的数据类型。
阅读全文