您的位置:首页 > 编程语言 > Java开发

SpringMvc的Common- upload的MutilpartFile转换为io.File--进行Excel文件上传

2017-11-16 09:49 441 查看
    //将MultipartFile转换为File对象

        CommonsMultipartFile cf= (CommonsMultipartFile)file;

        DiskFileItem fi = (DiskFileItem)cf.getFileItem();
        File f = fi.getStoreLocation();

//两种不同格式的手机号上传,对doubbler类型的数据进行整数处理      //将遍历的手机号存入list返回

        List<String> phones = new ArrayList<>();

        HSSFWorkbook hssfWorkbook = new HSSFWorkbook(new FileInputStream(f));

        for(int i = 0 ;i<hssfWorkbook.getNumberOfSheets();i++) {

            for(Row row : hssfWorkbook.getSheetAt(i)) {

                //第一行是表头

                if (row.getRowNum()==0) {

                    continue;

                }

                

                //支持String类型和Numeric类型上传

                switch (row.getCell(0).getCellType()) {

                    case XSSFCell.CELL_TYPE_NUMERIC:

                            //存在空行的情况,跳过

                            if (row.getCell(0)==null) {

                                continue;

                            }

                                //将取到的dubloe类型数据转换为字符串类型

                            DecimalFormat dFormat = new DecimalFormat("#");

                            String phoneStr = dFormat.format((row.getCell(0).getNumericCellValue()));

                            phones.add(phoneStr);

                            break;

                    case XSSFCell.CELL_TYPE_STRING:

                            //String类型

                            if (row.getCell(0)==null||StringUtils.isBlank(row.getCell(0).getStringCellValue())) {

                                continue;

                            }

                            phones.add(row.getCell(0).getStringCellValue());

                        break;

                    default:

                        break;

                }

            }

        }

        return phones;

//xlsx格式解析

持String类型和Numeric类型上传

                switch (row.getCell(0).getCellType()) {

                    case XSSFCell.CELL_TYPE_NUMERIC:

                            //存在空行的情况,跳过

                            if (row.getCell(0)==null) {

                                continue;

                            }

                                //将取到的dubloe类型数据转换为字符串类型

                            DecimalFormat dFormat = new DecimalFormat("#");

                            String phoneStr = dFormat.format((row.getCell(0).getNumericCellValue()));

                            phones.add(phoneStr);

                            break;

                    case XSSFCell.CELL_TYPE_STRING:

                            //String类型

                            if (row.getCell(0)==null||StringUtils.isBlank(row.getCell(0).getStringCellValue())) {

                                continue;

                            }

                            phones.add(row.getCell(0).getStringCellValue());

                        break;

                    default:

                        break;

                }

                }

            }

        return phone;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: