改为以文件流传输,文件不落地的形式报错!
来源: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
问题补充:
新增报错信息

相似问题