改为以文件流传输,文件不落地的形式报错!
来源:2-6 导入Excel-4
那条时光流过的小巷
2019-03-02 03:33:07
报错结果如下,代码如下,请问怎么解决?
package com.imooc.service; import com.imooc.dto.ImportExcelParamDto; import com.imooc.dto.ImportExcelResultDto; import com.imooc.entity.Student; import com.imooc.util.FileUtil; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class ExcelService { //解析Excel public ImportExcelResultDto imp(ImportExcelParamDto dto) { //保存解析好的信息 ImportExcelResultDto result = new ImportExcelResultDto(); result.setTitle(dto.getTitle()); List<Student> studentList = new ArrayList<>(); result.setStudentList(studentList); Workbook workbook = null; try { //以文件流的形式 workbook = WorkbookFactory.create(dto.getExcel().getInputStream()); //取到第几个sheet Sheet sheet = workbook.getSheetAt(0); //excel表格行数 int rowNum = sheet.getLastRowNum(); for (int i =1; i <=rowNum; i++){ //取每一行,并存入到student中 Row row = sheet.getRow(i); Student student = new Student(); //需要把从excel表格中获取到的数据返回出去 student.setName(row.getCell(0).getStringCellValue()); student.setAge((int) row.getCell(1).getNumericCellValue()); student.setTime(row.getCell(2).getDateCellValue()); studentList.add(student); } } catch (IOException e) { e.printStackTrace(); result.setMsg("解析Excel失败!"); }finally { if (workbook != null){ try { workbook.close(); } catch (IOException e) { e.printStackTrace(); } } } //解析好了,通知上层调用者 return result; } }
2回答
1、请问同学第一个问题解决了吗?如果没有的话, 建议同学新建一个空项目,使用当前的Tomcat访问试下,看能不能正常启动并访问;如果不可以,建议同学重新到官网下载一个Tomcat。
2.第二个报错是说import_03_excel.xls文件已经存在,同学是在创建这个文件吗?把这个文件删掉以后再试下呢~
如果还有问题,可以再次提问,祝学习愉快!
那条时光流过的小巷
提问者
2019-03-02
问题补充:
新增报错信息
相似问题