小编Jos*_*llo的帖子

我可以一起使用jxls和apache poi吗?

我正在制作一个用于分析某些数据的应用程序,并且结果必须在excel文件中显示。从这个意义上讲,我开始使用Apache POI(3.11)。由于某些报告要花费大量时间和内存来进行复制,因此我进行了调查,发现jxls,经过一些测试,我认为这是解决方案。但是现在我发现了一个问题:不能同时使用两个框架。

  1. 我必须将Apache POI从3.11更新到3.14,以便使用jxls-2.3.0
  2. 我做了一个额外的包装,以便使用jxls进行测试,没问题
  3. 我尝试将我的一个类从Apache POI迁移到jxls,并且出现此错误:java.lang.IllegalStateException: Cannot load XLS transformer. Please make sure a Transformer implementation is in classpath。这是我的方法的代码:

    private void prepareNewReport(File excelFile) {
        List perforaciones = makePerforacionReport
                                                .makePerforacionData(escenario);
    
    
    try (InputStream is =  ReportePerforacionTotalDialog.class
                    .getResourceAsStream("PerforacionTotal_template.xls")){
        try (OutputStream os = new FileOutputStream(excelFile)) {
            Context context = new Context();
            context.putVar("perforaciones", perforaciones);
            JxlsHelper.getInstance().processTemplate(is, os, context);
            LOGGER.logger.log(Level.INFO, "Archivo de perfortacion generado con éxito");
        }
    } catch (IOException e) {
        LOGGER.logger.log(Level.SEVERE, "Problemas buscando el archivo", e);
    }
    
    Run Code Online (Sandbox Code Playgroud) }
    Run Code Online (Sandbox Code Playgroud)

这怎么可能?在同一个项目中,我有测试类,只有另一个软件包,并且可以正常工作。如您所见,它与jxls页面中的示例没有太大不同,并且导入是相同的。

但更糟糕的是,当我尝试清理和构建项目时,又遇到了另一个错误:

java.lang.RuntimeException: com.sun.tools.javac.code.Symbol$CompletionFailure: …
Run Code Online (Sandbox Code Playgroud)

apache-poi jxls

2
推荐指数
1
解决办法
1852
查看次数

标签 统计

apache-poi ×1

jxls ×1