生成下拉列表中出现的问题

  • 当一个单元格中的字节超过255时,会报异常,
  • java.lang.IllegalArgumentException: String literals in formulas can’t be bigger than 255 characters ASCII

  • 一般情况下生成下拉列表中使用的方法

                                              String[] textList, int firstRow, int endRow, int firstCol,int endCol) {// 加载下拉列表内容DVConstraint constraint = DVConstraint.createExplicitListConstraint(textList);// 设置数据有效性加载在哪个单元格上,四个参数分别是:起始行、终止行、起始列、终止列CellRangeAddressList regions = new CellRangeAddressList(firstRow,endRow, firstCol, endCol);// 数据有效性对象HSSFDataValidation data_validation_list = new HSSFDataValidation(regions, constraint);realSheet.addValidationData(data_validation_list);return realSheet;}
  • DVConstraint constraint = DVConstraint.createExplicitListConstraint(textList);==直接加载数组textList==

  • 当数组过大则需再创建一个sheet也存放数据,再将sheet引用到真正的realSheet中

  • 完整示例
public static void main(String[] args) throws IOException {String[] countryName = {"张新花", "赵峰", "刘丹", "黄生功", "李春楠", "马艳珍", "张建群", "赵瑞年", "井含英", "郭元维", "王文芳", "段国英", "张文婷", "陈鹏英", "常发梅", "孔繁菲", "祁洪香", "韩雅楠", "范明奎", "任顺龙", "丁永乐", "马德录", "吴红英", "严进香", "史芳", "林玲", "王有运", "樊有祥", "靳智慧", "马梅", "陈加贤", "李万辉", "马斌花", "李梅林", "李生丰", "刘丹丹", "杨菊清", "贾锡通", "山永信", "陈少渔", "卢君", "任永慧", "窦珍香", "张国清", "李美玲", "曹艳慧", "刘永秀", "樊光芳", "侯尚梅", "罗生琳", "张海芬", "梁召贤", "谈明宝", "贾统梅", "王生萍", "周泓宇", "江秀兰", "孙小青", "马占富", "吴秀萍", "马宏伟", "德吉卓么", "梁奎先", "宋伯福", "马占刚", "李国锋", "史元", "马佐辉", "李贵福", "乔世红", "李晓红", "荘柳红", "戴连梅", "裴延红", "田海兵", "党忠霞", "星玉英", "张廷良", "韩国宝", "韩庆文", "赵玉莹", "马有莲", "郭丽萍", "吴秀春", "贾延章", "石维丙", "李成梅", "喇成明", "解生旺", "运占花", "熊成吉", "贾生升", "景源德", "李文君", "马洪淇", "李慧文", "魏学刚", "罗长平", "胡生春", "田种兴", "李满存", "石延花", "王生兰", "赵家军", "安生年", "田生花", "赵雪玲", "宋邦元", "张红梅", "刘岩莉", "钟光霖", "汪武祥", "李连发", "张雪莲", "逯进义", "马花", "思春梅", "牛永水", "刘万邦", "张小兰", "魏珍", "李永梅", "刘跃峰", "杨有德", "肖正文", "马兰", "郭永清", "蔡晓燕", "孙占德", "陈文娟", "王凌云", "卢世宝", "王桂梅", "宋邦宏", "李生花", "张成芳", "赵明花", "张刘贤", "赵仲慧"};HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet realSheet = workbook.createSheet("Sheet xls"); HSSFSheet hidden = workbook.createSheet("hidden"); HSSFCell cell = null;for (int i = 0, length= countryName.length; i < length; i++) { String name = countryName[i]; HSSFRow row = hidden.createRow(i); cell = row.createCell(0); cell.setCellValue(name); } CellRangeAddressList regions = new CellRangeAddressList(0,0, 0, 0);//获取单元格的坐标System.out.println(regions.getCellRangeAddress(0).formatAsString());Name namedCell = workbook.createName(); namedCell.setNameName("hidden"); namedCell.setRefersToFormula("hidden!A1:A" + countryName.length); //加载数据,将名称为hidden的DVConstraint constraint = DVConstraint.createFormulaListConstraint("hidden"); // 设置数据有效性加载在哪个单元格上,四个参数分别是:起始行、终止行、起始列、终止列CellRangeAddressList addressList = new CellRangeAddressList(0, 0, 0, 0); HSSFDataValidation validation = new HSSFDataValidation(addressList, constraint);//将第二个sheet设置为隐藏workbook.setSheetHidden(1, true); realSheet.addValidationData(validation); FileOutputStream stream = new FileOutputStream("c:\\range.xls"); workbook.write(stream); stream.close();}
  • 创建一个sheetHSSFSheet hidden = workbook.createSheet("hidden");
  • 将数组中的数据添加到改sheet中
  • 设置隐藏workbook.setSheetHidden(1, true);
  • 定义名称

    Name namedCell = workbook.createName();
    namedCell.setNameName("hidden");
    namedCell.setRefersToFormula("hidden!A1:A" + countryName.length);
  • 加载到realsheet上
//加载数据,将名称为hidden的
DVConstraint constraint = DVConstraint.createFormulaListConstraint("hidden");
// 设置数据有效性加载在哪个单元格上,四个参数分别是:起始行、终止行、起始列、终止列
CellRangeAddressList addressList = new CellRangeAddressList(0, 0, 0, 0);
HSSFDataValidation validation = new HSSFDataValidation(addressList, constraint);
realSheet.addValidationData(validation); 

POI操作EXCEl样式

//设置长宽的长度
realSheet.setDefaultColumnWidth(15);
realSheet.setDefaultRowHeightInPoints(25);//设置背景色
HSSFCellStyle style = wb.createCellStyle();
style.setFillForegroundColor(HSSFColor.LIGHT_ORANGE.index);// 设置背景色
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);//设置边框
style.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框//设置字体
HSSFFont font = wb.createFont();
font.setFontName("黑体");
font.setFontHeightInPoints((short) 10);//设置字体大小
font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);//粗体显示
style.setFont(font);//选择需要用到的字体格式//居中设置
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

POI实现EXCEL下拉列表相关推荐

  1. Java Poi获取Excel下拉列表值

    如下图所示,需要获取第一行.第一列单元格下拉列表值: 1.添加poi所需依赖包 <dependency><groupId>org.apache.poi</groupId& ...

  2. POI设置Excel下拉列表(数据有效性验证)

    /*** @Description: 添加数据有效性检查(下拉列表)* @param firstRow 开始行* @param lastRow 结束行* @param firstCol 开始列* @p ...

  3. POI java excel 生成下拉列表

    近日在工作中遇到使用POI生成excel模板的需求,数据库取出所有类型生成excel下拉列表供用户选择. 使用的POI版本为3.14 两种方案,第一种的缺点是列表数据量不能超过128. 方案一 pub ...

  4. POI导出Excel时下拉列表值超过255的问题(String literals in formulas can‘t be bigger than 255 characters ASCII)

    一.简单的描述问题:(记录问题) 首先说一下我们导出的这个Excel表,我们是通过POI来生成一个Excel表,然后在Excel表中添加了下拉列表,然后将数据库中取出的数据放到下拉列表中,这样每次导出 ...

  5. POI 2003/2007 下拉列表

    http://fruitking.iteye.com/blog/811931 Excel2003和Excel2007对下拉选择和下拉级联选择的操作以及java程序的调用 博客分类: 知识点积累 Jav ...

  6. java输出excel 异常处理_使用poi导出Excel,并设定单元格内容类型,抛出异常

    本例子使用的是HSSF,为Excel2003提供处理方案. 设定为输入类型为数值 import org.apache.poi.hssf.usermodel.DVConstraint; import o ...

  7. JAVA导出Excel通用工具类——第一篇:详细介绍POI 导出excel的多种复杂情况,包括动态设置筛选、动态合并横向(纵向)单元格等多种复杂情况——保姆级别,真的不能再详细了,代码拿来即用)

    JAVA导出Excel通用工具--第一篇:详细介绍POI 导出excel的多种复杂情况,包括动态设置筛选.动态合并横向(纵向)单元格等多种复杂情况--保姆级别,真的不能再详细了,封装通用工具类,代码拿 ...

  8. poi生成excel下拉菜单

    在web开发中常用到生成excel模板,在用excel poi生成excel模板时,常用到生成excel下拉菜单.下面是生成excel下拉菜单的代码: package poiexcel;import ...

  9. POI处理Excel中的日期数据类型

    在POI处理Excel中的日期类型的单元格时,如果仅仅是判断它是否为日期类型的话,最终会以NUMERIC类型来处理. 正确的处理方法是先判断单元格 的类型是否则NUMERIC类型, 然后再判断单元格是 ...

  10. poi解析excel读取日期为数字的问题

    Apache poi 版本:3.12 今天在用poi解析excel文件时,碰到一个蛋疼的问题. 在我的excel文件中有一列是日期类型,例如有以下这么一行数据(日期中月份前面的0会自动去掉): 在读取 ...

最新文章

  1. 一个程序员的成长的六个阶段(转载)
  2. 网站优化期间有哪些细节需要注意?
  3. 最简实例说明wait、notify、notifyAll的使用方法
  4. 4周,从入门小白到爬虫老炮儿,薪资水平超过60% IT新手!
  5. Repeater 操作HeaderTemplat或FooterTemplat模板中控件
  6. ios 隔空投安装ipa_ipa文件能不能直接安装到手机上?怎么操作?
  7. 倍增:st表(模板)(洛谷P3865)
  8. 第十篇: 高可用的服务注册中心(Finchley版本)V2.0_dev
  9. OpenCV:H1.type() == H2.type() H1.depth() == CV_32F
  10. Type interface com.zhaoka.mapper.DatKcardKmMapper is not known to the MapperRegistry
  11. Pycharm运行项目代码时输入可选参数
  12. excel如何把多张表合并成一个表_从产品经理到总监,就差一张高价值Excel表
  13. [R语言统计]频数表
  14. c语言小游戏百度云资源,c语言小游戏合集
  15. 【pygame】微信飞机大战
  16. 小智慧81:你和谁睡在一起
  17. QQ音乐会员免费领取
  18. java 只保留字母_java编程问题,急急急!输入一个字符串,如果字符串中存在字母a的次数大于1,则只保留第一个a,...
  19. 什么是软件体系结构?
  20. 注意力机制在视觉中的实战

热门文章

  1. R语言使用grid包的unit函数将数据对象转化为有计量单位的数据(例如转化为毫米单位、长度单位mm)
  2. glassfish java环境_GlassFish安装和配置详解
  3. 关于几种常用的脱壳方法总结
  4. 植物研究最新进展(2021年11月)
  5. 有缘-无缘-惜缘-随缘
  6. java随机昵称_Java随机产生中文昵称
  7. 【外挂编程】外挂编程技术揭秘(一)
  8. ORACLE数据库字段类型说明
  9. Threejs 字体单独发光
  10. STM32之DS1682