将excel表格中的数据存储到数据库表中前端有一个上传excel的文本框前端用thymeleaf后端用Spring boot+jpa
- 创建数据库表
首先需要在数据库中创建一个表,用于存储Excel表格中的数据。可以使用以下SQL语句创建一个名为“excel_data”的表:
CREATE TABLE excel_data (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255),
age INT,
gender VARCHAR(10),
email VARCHAR(100)
);
其中,“id”为主键,“name”、“age”、“gender”和“email”为Excel表格中的列名。
- 创建实体类
在Java中创建一个实体类,用于映射数据库表中的数据。在本例中,实体类的属性与数据库表中的列名相对应。可以使用以下代码创建一个名为“ExcelData”的实体类:
@Entity
@Table(name = "excel_data")
public class ExcelData {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private Integer age;
private String gender;
private String email;
// getters and setters
}
- 创建上传页面
在前端页面中创建一个上传Excel表格的文本框,并添加一个“上传”按钮。可以使用以下代码创建一个名为“upload.html”的页面:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Upload Excel File</title>
</head>
<body>
<form th:action="@{/upload}" method="post" enctype="multipart/form-data">
<input type="file" name="file"><br><br>
<input type="submit" value="Upload">
</form>
</body>
</html>
- 实现上传功能
在Spring Boot中,可以使用MultipartFile类来处理上传的文件。可以在控制器中创建一个POST请求,用于处理上传请求,读取Excel表格中的数据,并将数据存储到数据库表中。可以使用以下代码实现上传功能:
@PostMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file, Model model) throws IOException {
// 读取Excel表格中的数据
List<ExcelData> data = new ArrayList<>();
Workbook workbook = new XSSFWorkbook(file.getInputStream());
Sheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
if (row.getRowNum() == 0) {
continue;
}
ExcelData excelData = new ExcelData();
excelData.setName(row.getCell(0).getStringCellValue());
excelData.setAge((int) row.getCell(1).getNumericCellValue());
excelData.setGender(row.getCell(2).getStringCellValue());
excelData.setEmail(row.getCell(3).getStringCellValue());
data.add(excelData);
}
workbook.close();
// 将数据存储到数据库表中
data.forEach(excelDataRepository::save);
model.addAttribute("message", "Upload successful!");
return "upload";
}
其中,“ExcelDataRepository”是一个继承自JpaRepository的接口,用于操作数据库表中的数据。可以使用以下代码创建一个名为“ExcelDataRepository”的接口:
public interface ExcelDataRepository extends JpaRepository<ExcelData, Long> {
}
- 显示上传结果
在上传成功后,可以在前端页面中显示上传结果。可以在“upload.html”页面中添加以下代码,用于显示上传结果:
<p th:if="${message != null}" th:text="${message}"></p>
以上就是将Excel表格中的数据存储到数据库表中的完整代码
原文地址: https://www.cveoy.top/t/topic/fixW 著作权归作者所有。请勿转载和采集!