改为以文件流传输,文件不落地的形式报错!

来源:2-6 导入Excel-4

那条时光流过的小巷

2019-03-02 03:33:07

报错结果如下,代码如下,请问怎么解决?

http://img.mukewang.com/climg/5c7988670001a3f817380699.jpg

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回答

一叶知秋519

2019-03-03

1、请问同学第一个问题解决了吗?如果没有的话, 建议同学新建一个空项目,使用当前的Tomcat访问试下,看能不能正常启动并访问;如果不可以,建议同学重新到官网下载一个Tomcat。

2.第二个报错是说import_03_excel.xls文件已经存在,同学是在创建这个文件吗?把这个文件删掉以后再试下呢~

如果还有问题,可以再次提问,祝学习愉快!

0

那条时光流过的小巷

提问者

2019-03-02

问题补充:

新增报错信息

http://img.mukewang.com/climg/5c79f6c7000125f516850649.jpg

0

0 学习 · 10204 问题

查看课程