首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在用法语生成xls时获取Null指针异常

在用法语生成xls时获取Null指针异常
EN

Stack Overflow用户
提问于 2018-11-26 08:00:20
回答 1查看 404关注 0票数 0

在java中使用apache生成.xls文件时,我得到了空指针异常。

同样的代码在“英语语言”中运行良好,但是它给了我一个空指针,同时我试图用“法语”语言生成它。

一些列具有空值,但我在创建单元格时处理这些空数据和空单元格。

在尝试写入输出详细信息时获取空指针

ClassExcel.write(Out);

下面是我在DTO中保存的所有数据之后用于xls生成的方法。

代码语言:javascript
复制
    public void ExcelGenerate(
    ClassExcelDTO classExcel,
    HttpServletResponse response,
    HttpServletRequest request) throws Exception {
    request.setCharacterEncoding("iso-8859-1");
    if( classExcel != null ){
            response.reset();
            response.setContentType("application/csv");
            response.setHeader("Content-disposition","attachment;filename=\"" + classExcel.getName + ".xls\"");
            try {
                if(null!=response && null!=response.getOutputStream()){
                OutputStream out = response.getOutputStream();

                if(null!=out)
                    try {
                        classExcel.write(out);
                    } catch (Exception e) {

                        e.printStackTrace();
                    }

                out.close();
                }
            } catch (SocketException sEx) {

            } catch (IOException io) {
            } catch (Exception e) {

            }
        } else {

        // Some code
        }
}

下面是生成的异常: 14:43:09,037错误stderr java.lang.NullPointerException

14:43:09,037 org.apache.poi.util.StringUtil.putCompressedUnicode(StringUtil.java:193)错误stderr

14:43:09,037 org.apache.poi.hssf.record.BoundSheetRecord.serialize(BoundSheetRecord.java:281)错误stderr

14:43:09,037 org.apache.poi.hssf.model.Workbook.serialize(Workbook.java:732)错误stderr

14:43:09,037 org.apache.poi.hssf.usermodel.HSSFWorkbook.getBytes(HSSFWorkbook.java:786)错误stderr

14:43:09,037 org.apache.poi.hssf.usermodel.HSSFWorkbook.write(HSSFWorkbook.java:732)错误stderr

如果有人有任何想法,请帮助我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-26 10:46:22

我能够解决上面的空指针异常。

问题的根本原因。

在使用法语创建每个选项卡时,我传递的是包含超过31个字符的标签名的keyValue。但是,Apache允许少于31个字符的(Exception--------------java.lang.IllegalArgumentException:工作表名不能为空白、大于31个字符或包含任何/*?[],并且由于该空白(空)工作表名,在编写工作簿时发生了该空指针异常。

代码语言:javascript
复制
<i> [BOUNDSHEET]
     .bof             = 0
     .optionflags     = 0
     .sheetname length= 0
     .unicodeflag     = 0
     .sheetname       = null
</i>

因此,避免使用少于31章的工作表名称,并且工作表名称不应包含任何/*?[]特殊字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53476826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档