SpringBoot读取Excel文件

mac2024-06-01  45

一、pom.xml

导入两个依赖,如下:

<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.10-FINAL</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.10-FINAL</version> </dependency>

二、Controller层

@RequestMapping("/uploadExcelFile") @ResponseBody public String uploadExcelFile(MultipartFile excelFile) throws Exception { if(excelFile.isEmpty()){ return "error"; }else { String fileName = excelFile.getOriginalFilename();//获取文件名 InputStream in = excelFile.getInputStream();//获取文件输入流 if(choiceService.insertChoice(in, fileName)){ return "success"; }else { return "error"; } } }

三、Service层

public boolean insertChoice(InputStream excelFile,String fileName) throws Exception { boolean flag = true; //创建Excel工作薄 Workbook workbook = this.getWorkbook(excelFile,fileName); ……略,自由发挥部分 //获取到了workbook后就可以在这干你想干的事了 //Sheet sheet = workbook.getSheetAt(i);获取第i个sheet //sheet.getFirstRowNum() //sheet.getLastRowNum() //Row row = sheet.getRow(i)获取sheet中的第i行 //Workbook、Sheet、Row、Cell的一些方法可以百度一下 …… return flag; } /** * 判断文件格式.xls/.xlsx * @param in * @param fileName * @return * @throws Exception */ public Workbook getWorkbook(InputStream in, String fileName) throws Exception { Workbook workbook = null; String fileType = fileName.substring(fileName.lastIndexOf(".")); if(".xls".equals(fileType)){ workbook = new HSSFWorkbook(in); }else if(".xlsx".equals(fileType)){ workbook = new XSSFWorkbook(in); }else { throw new Exception("请上传.xls/.xlsx格式文件!"); } return workbook; }

四、前端

html部分

<div class="col-md-4 text-right"> <input id="upload" name="excelFile" type="file" style="display: none;" accept=".xls,.xlsx" onchange="whenInputChange()" /> <button onclick="upload()">导入</button> </div>

Js/jq部分

function upload() { $("#upload").click(); } function whenInputChange() { var excelFile = $("#upload").get(0).files[0]; var dataForm = new FormData(); dataForm.append("excelFile",excelFile); $.ajax({ type:"post", url:"/uploadExcelFile", data:dataForm, processData:false, contentType:false, async:false, success:function (data) { if(data == "success"){ alert("成功"); }else{ alert("失败"); } }, error:function () { popupBox('系统出现问题'); } }) }

结语:SpringBoot获取Excel文件的过程大致就这样。有不正确之处请指教。

最新回复(0)