鉴于4.0已经开始使用jdk8了,我们的功能也是时候升级下了,现在导入支持了fork/join的线程支持,使用限制
1.因为是采用分隔读取的所以不支持一对多
2.4.1是不支持图片的
3.线程数我测试是根据CPU来的不知是否正确

使用方法很简单ImportParams 新加了两个参数,设置为true就可以了,critical是最新的分隔符,可以自定义下

/**
     * 是否并行计算
     */
    private boolean             concurrentTask = false;
    /**
     * 最小截取大小
     */
    private Integer             critical = 1000;

demo如下

  @Test
    public void testConCurrent() {
        try {
            Date start = new Date();
            LOGGER.debug("start");
            ImportParams params = new ImportParams();
            params.setTitleRows(1);
            params.setConcurrentTask(true);
            List<MsgClient> result = ExcelImportUtil.importExcel(
                    new File(FileUtilTest.getWebRootPath("import/BigDataExport.xlsx")),
                    MsgClient.class, params);
            LOGGER.debug("end,time is {}", ((new Date().getTime() - start.getTime()) / 1000));
            Assert.assertTrue(result.size() == 200000);
            for (int i = 0; i < result.size(); i++) {
                Assert.assertTrue(result.get(i).getClientName().equalsIgnoreCase("小明" + i));
            }
        } catch (Exception e) {
        }
    }

我测试数据结果和正常读取的逾期是一直的

文档更新时间: 2020-04-09 15:16   作者:admin