Java代码实现 Excel上传并保存数据库
时间: 2023-08-22 21:03:25 浏览: 108
以下是一个基于Spring Boot框架的Java代码示例,演示了如何将上传的Excel文件读取并将其内容保存到数据库中:
1. 首先,在pom.xml文件中添加以下依赖项:
```
<!-- Apache POI -->
<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>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MySQL Connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
```
2. 创建一个名为UploadController的控制器类。该类包含一个处理文件上传请求的方法。
```java
@RestController
public class UploadController {
@Autowired
private JdbcTemplate jdbcTemplate;
@PostMapping("/upload")
public String handleFileUpload(@RequestParam("file") MultipartFile file) throws IOException {
// 读取Excel文件
Workbook workbook = new XSSFWorkbook(file.getInputStream());
Sheet sheet = workbook.getSheetAt(0);
// 遍历行
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
Row row = sheet.getRow(i);
// 读取单元格的值
String name = row.getCell(0).getStringCellValue();
String email = row.getCell(1).getStringCellValue();
// 将数据保存到数据库中
jdbcTemplate.update("INSERT INTO users (name, email) VALUES (?, ?)", name, email);
}
return "File uploaded successfully!";
}
}
```
3. 创建一个名为application.properties的文件,配置数据库连接信息。
```
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=myusername
spring.datasource.password=mypassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
```
4. 运行Spring Boot应用程序,并在浏览器中访问上传文件的URL。在选择一个Excel文件并上传后,文件内容将被读取并保存到MySQL数据库中。
注意:该示例假设已经按照正确的方式设置了数据库连接信息,并且已经创建了一个名为"users"的表,该表包含"name"和"email"两个列。如果您的数据库结构与此不同,请相应地修改代码。
阅读全文