解析excel

/**
 * 将上传文件解析,按逻辑入库
 * <p>
 * 2017年9月4日 16:07:28
 * xj
 *
 * @param request 请求体
 */
public void importCompanyIndustryTemplate(HttpServletRequest request) {
    // 检查上传文件
    MultipartFile file = Util.checkFile(request);
    Workbook workbook = null;
    try {
        InputStream in = file.getInputStream();
        workbook = WorkbookFactory.create(in);
    } catch (IOException e) {
        logger.error(e.getMessage(), e);
    } catch (InvalidFormatException e) {
        logger.error(e.getMessage(), e);
    }
    // 行业字典表
    List<Industry> list = industryRepository.findAll();
    // excel信息合集
    Map<Integer, String> map = new HashMap<Integer, String>();
    String str = "";
    // 遍历excel,获取sheet信息
    for (int k = 0; k < workbook.getNumberOfSheets(); k++) {
        // 获取指定sheet信息
        Sheet sheet = workbook.getSheetAt(k);
        // 获取第一行信息
        Row row = sheet.getRow(0);
        // 获取sheet总列数
        int colNum = row.getPhysicalNumberOfCells();
        // 获取sheet总行数
        int rowNum = sheet.getLastRowNum();
        // 遍历每行信息
        for (int i = 1; i <= rowNum; i++) {
            row = sheet.getRow(i);
            boolean flag = isBlankRow(row);
            if (!flag) {
                int j = 0;
                // 将表格中信息按格式存入map
                while (j < colNum) {
                    // 每个单元格的数据内容用"-"分割开,以后需要时用String类的replace()方法还原数据
                    // 也可以将每个单元格的数据设置到一个javabean的属性中,此时需要新建一个javabean
                    str += ExcelUtil.getCellFormatValue(row.getCell((short) j)).trim() + "-";
                    j++;
                }
                map.put(i, str);
                str = "";
            }
        }
        saveCompanyIndustryTemplate(list, map);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值