java - Web开发 - POI导出带有下拉框的Excel和解决下拉中数组过多而产生的异常
迷茫
迷茫 2017-05-17 10:00:25
[Java讨论组]

1、如果Excel下拉的数组较少(大概为0~20个),可以用如下方式导出:

            /**
             * Excel API
             */
            @SuppressWarnings("resource")
            HSSFWorkbook book = new HSSFWorkbook();  
            HSSFSheet sheet = book.createSheet("xxxx");  
            
            /**
             * 初始化参数
             */
            Map map = new HashMap(); // 查询时用的map 
            List list = null; 
            String[] strs = null; // 用于下拉的数组
            int startRow = 1; // 下拉的开始行 
            int endRow = 100; // 下拉的结束行
            CellRangeAddressList regions = null;
            DVConstraint constraint = null;
            CellRangeAddressList addressList = null;
            HSSFDataValidation validation = null; // 数据验证

            map.put("namespace", "xxxxxxxxxx.xxxxxxxxxx"); // 查询数据
            list = commonQueryService.queryList(map); 
            strs = StringUtil.mapListToStrs(list); // list转换为字符串数组
            cellNum = SpuEnu.CATEGORY_1.getNumber(); // 下拉的列
            
            regions = new CellRangeAddressList(startRow, endRow, cellNum, cellNum); // 开始行、结束行、开始列、结束列的下拉区域均被下拉替代 
            constraint = DVConstraint.createExplicitListConstraint(strs);  
            validation = new HSSFDataValidation(regions, constraint); // 绑定下拉框和作用区域   
            sheet.addValidationData(validation); 

2、问题是如果下拉的数组过多,POI会出现如下异常信息:

String literals in formulas can't be bigger than 255 characters ASCII

这个问题的解决办法网上不好查到,所以我将解决办法贴在下面

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号