zoukankan      html  css  js  c++  java
  • 【转】The maximum number of cell styles was exceeded. You can define up to 4000 styles

    POI操作Excel中,导出的数据不是很大时,则不会有问题,而数据很多或者比较多时,

    就会报以下的错误,是由于cell styles太多create造成,故一般可以把cellstyle设置放到循环外面

    报错如下:

    Caused by: java.lang.IllegalStateException: The maximum number of cell styles was exceeded. You can define up to 4000 styles in a .xls workbook
    at org.apache.poi.hssf.usermodel.HSSFWorkbook.createCellStyle(HSSFWorkbook.java:1144)
    at org.apache.poi.hssf.usermodel.HSSFWorkbook.createCellStyle(HSSFWorkbook.java:88)
    at com.trendmicro.util.toExcel.ExcelExporter.addWorkbook(ExcelExporter.java:612)
    at com.trendmicro.util.toExcel.ExcelExporter.exportToExcel(ExcelExporter.java:112)
    at com.trendmicro.util.toExcel.ReportExporter.exportAutomationReport(ReportExporter.java:190)
    at com.trendmicro.view.reports.TestCaseAutomationBean.exportAutoReport(TestCaseAutomationBean.java:856)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.el.parser.AstValue.invoke(AstValue.java:191)
    at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
    at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
    ... 33 more

    -------------实例----------------

    错误代码:

    for (int i = 0; i < 10000; i++) {  
        Row row = sheet.createRow(i);   
        Cell cell = row.createCell((short) 0);   
        CellStyle style = workbook.createCellStyle();  
        Font font = workbook.createFont();   
        font.setBoldweight(Font.BOLDWEIGHT_BOLD);   
        style.setFont(font);   
        cell.setCellStyle(style);  
    }  

    修改后代码:

    CellStyle style = workbook.createCellStyle();  
    Font font = workbook.createFont();  
    font.setBoldweight(Font.BOLDWEIGHT_BOLD);  
    style.setFont(font);  
    for (int i = 0; i < 10000; i++) {   
        Row row = sheet.createRow(i);   
        Cell cell = row.createCell((short) 0);   
        cell.setCellStyle(style);  
    }  
  • 相关阅读:
    pipelinewise 学习二 创建一个简单的pipeline
    pipelinewise 学习一 docker方式安装
    Supercharging your ETL with Airflow and Singer
    ubuntu中使用 alien安装rpm包
    PipelineWise illustrates the power of Singer
    pipelinewise 基于singer 指南的的数据pipeline 工具
    关于singer elt 的几篇很不错的文章
    npkill 一个方便的npm 包清理工具
    kuma docker-compose 环境试用
    kuma 学习四 策略
  • 原文地址:https://www.cnblogs.com/againn/p/9040816.html
Copyright © 2011-2022 走看看