将Excel表格数据存储到数据库表中

本教程将演示如何使用Spring Boot、Thymeleaf和JPA将Excel数据导入数据库。我们将涵盖从创建数据库表到实现上传功能和显示结果的整个流程。

1. 创建数据库表

首先需要在数据库中创建一个表,用于存储Excel表格中的数据。可以使用以下SQL语句创建一个名为'excel_data'的表:sqlCREATE 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表格中的列名。

2. 创建实体类

在Java中创建一个实体类,用于映射数据库表中的数据。在本例中,实体类的属性与数据库表中的列名相对应。可以使用以下代码创建一个名为'ExcelData'的实体类:java@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}

3. 创建上传页面

在前端页面中创建一个上传Excel表格的文本框,并添加一个'上传'按钮。可以使用以下代码创建一个名为'upload.html'的页面:html Upload Excel File



4. 实现上传功能

在Spring Boot中,可以使用MultipartFile类来处理上传的文件。可以在控制器中创建一个POST请求,用于处理上传请求,读取Excel表格中的数据,并将数据存储到数据库表中。可以使用以下代码实现上传功能:java@PostMapping("/upload")public String upload(@RequestParam("file") MultipartFile file, Model model) throws IOException { // 读取Excel表格中的数据 List 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'的接口:javapublic interface ExcelDataRepository extends JpaRepository<ExcelData, Long> {}

5. 显示上传结果

在上传成功后,可以在前端页面中显示上传结果。可以在'upload.html'页面中添加以下代码,用于显示上传结果:html

以上就是将Excel表格中的数据存储到数据库表中的完整代码

将Excel数据导入数据库 - 使用Spring Boot、Thymeleaf和JPA

原文地址: https://www.cveoy.top/t/topic/oab9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录