springboot 上传文件解析入库_SpringBoot上传解析并保存Excel数据

本文介绍了一个使用SpringBoot实现的Excel文件上传、内容解析和数据入库的流程。通过Apache POI库处理Excel文件,首先在Controller中接收上传的文件,然后在Service层解析文件内容,最后在Mapper层将数据保存到数据库。文章详细展示了关键代码,包括对MultipartFile的处理、Excel数据验证和数据插入操作。
摘要由CSDN通过智能技术生成

使用Java完成Excel文件的上传、内容的解析和以及保存操作。重点主要在于使用org.apache.poi包下的Workbook类完成对Excel内容的解析

首先pom文件引入Apache poi,

org.apache.poi

poi-ooxml

3.9

Apache POI提供API给Java程序对Microsoft Office(Excel、Word、PowerPoint等)格式档案读和写的功能

代码顺序为

controller → service → mapper

controller

接口用于接收前台页面上传的excel文件,并对MultipartFile参数做一些基本的判断

@Controller

@RequestMapping("/upload")

public class UploadExcelFileController {

private static final Logger LOGGER = LoggerFactory.getLogger(UploadExcelFileController.class);

@Autowired

private UploadExcelFileService uploadExcelFileService;

@PostMapping("/excelFile")

@ResponseBody

public ResponseResult uploadExcel(@RequestParam(value = "excelFile") MultipartFile file) {

LOGGER.debug("开始上传Excel文件");

ResponseResult result = new ResponseResult();

try {

if (file == null) {

// 文件不能为空

LOGGER.info("file参数为空!");

result.setCode(IStatusMessage.SystemStatus.NOT_ALLOWED_EMPTY_FILE.getCode());

result.setMessage(IStatusMessage.SystemStatus.NOT_ALLOWED_EMPTY_FILE.getMessage());

return result;

}

String fileName = file.getOriginalFilename();

if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) {

// 文件格式不正确

LOGGER.info("Excel文件格式不正确!");

result.setCode(IStatusMessage.SystemStatus.FILE_FORMAT_IS_INCORRECT.getCode());

result.setMessage(IStatusMessage.SystemStatus.FILE_FORMAT_IS_INCORRECT.getMessage());

return result;

}

long size = file.getSize();

if (StringUtils.isEmpty(fileName) || size == 0) {

// 文件不能为空

LOGGER.info("Excel文件内容为空!");

result.setCode(IStatusMessage.SystemStatus.NOT_ALLOWED_EMPTY_FILE.getCode());

result.setMessage(IStatusMessage.SystemStatus.NOT_ALLOWED_EMPTY_FILE.getMessage());

return result;

}

result = uploadExcelFileService.uploadExcel(fileName, file, existUser.getId(), result);

if (result.getMessage().equals("success")) {

//保存成功

LOGGER.info("上传Excel文件,文件上传成功!");

result.setCode(IStatusMessage.SystemStatus.UPLOAD_EXCEL_SUCCESS.getCode());

result.setMessage(IStatusMessage.SystemStatus.UPLOAD_EXCEL_SUCCESS.getMessage());

}

} catch (ServiceException e) {

e.printStackTrace();

result.setCode(IStatusMessage.SystemStatus.REQUEST_FAILED.getCode());

result.setMessa

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot中,处理文件上传解析入库的过程可以通过以下步骤实现: 1. 首先,你可以在Spring Boot项目中创建一个Controller类,并使用`@PostMapping`注解将一个URL映射到该方法上,以接收上传文件的请求。 2. 在Controller方法的参数中,你可以使用`@RequestParam`注解来获取上传文件,并将其保存到服务器上的指定路径中。可以使用以下代码来获取上传文件保存: ```java @PostMapping("/upload") public String handleFileUpload(@RequestParam("file") MultipartFile file) { try { // 获取上传文件的原始文件名 String fileName = file.getOriginalFilename(); // 指定文件保存的路径 String filePath = "/upload/"; // 创建保存文件的目录 File saveDir = new File(filePath); if (!saveDir.exists()) { saveDir.mkdirs(); } // 创建保存文件的完整路径 File saveFile = new File(saveDir.getAbsolutePath() + File.separator + fileName); // 将上传文件保存到指定路径 file.transferTo(saveFile); // 文件保存成功后,将文件信息解析入库或进行其他操作 return "File uploaded successfully"; } catch (Exception e) { // 处理文件上传过程中的异常 return "File upload failed"; } } ``` 在上面的代码中,`handleFileUpload`方法接收一个`MultipartFile`类型的参数来获取上传文件。通过`file.getOriginalFilename()`可以获得上传文件的原始文件名。然后,我们可以指定文件保存的路径,并创建保存文件的目录。最后,使用`file.transferTo(saveFile)`将上传文件保存到指定路径。 3. 在文件保存成功后,你可以对文件进行解析入库操作,具体的操作步骤根据你的业务需求而定。 注意:在进行文件上传之前,需要确保在Spring Boot的配置文件中配置了相应的文件上传配置。例如,可以使用`multipart.enabled=true`来启用文件上传功能。这可以通过在`application.properties`或`application.yml`文件中进行配置来实现。 以上就是在Spring Boot中处理文件上传解析入库的基本步骤。你可以根据实际需求进行相应的调整和扩展。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SpringBoot实现文件上传](https://blog.csdn.net/weixin_34194829/article/details/112867169)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [SpringBoot实现文件上传功能详解](https://blog.csdn.net/weixin_35025136/article/details/112046172)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值