poi-3.1-final 增加数据验证(between and操作符)
2016-07-04 12:17
405 查看
poi-3.1-final 增加数据验证(between and操作符)
前言:这个版本还没有dvconstraint,只能使用HSSFDataValidation进行验证步骤解析:
我们需要创建或者读取一个workbook
创建一个sheet
创建一个HSSFDataValidation的对象
设置数据类型
设置公式
设置ERROR TYPE
创建ERROR box(很关键,否则会不生效)
设置其他属性
简单的代码:
public void operatorTest(){ HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("测试"); HSSFDataValidation d1 = new HSSFDataValidation((short) 0, (short) 0, (short) 20, (short) 30); d1.setDataValidationType(HSSFDataValidation.DATA_TYPE_INTEGER); d1.setFirstFormula("1"); d1.setSecondFormula("200"); d1.setOperator(HSSFDataValidation.OPERATOR_BETWEEN); //d1.setErrorStyle(HSSFDataValidation.ERROR_STYLE_STOP); d1.setErrorStyle(HSSFDataValidation.ERROR_STYLE_WARNING); sheet.addValidationData(d1); try{ FileOutputStream fos = new FileOutputStream("d:\\tmp.xls"); wb.write(fos); fos.close(); }catch(Exception e){ e.printStackTrace(); } }
附下拉框的代码:
public void createDropDown() { // excel上生成下拉筐 // 先定义两个值"有";"无" HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("测试"); HSSFRow row; HSSFCell cell; short m = 0; row = sheet.createRow(m + 0); cell = row.createCell((short) 26); cell.setCellValue("有"); // 有 m++; row = sheet.createRow(m + 0); cell = row.createCell((short) 26); cell.setCellValue("无"); // 无 m++; String strFormula = "$AA$1:$AA$2"; // 表示AA列1-2行作为下拉列表来源数据 HSSFDataValidation data_validation = new HSSFDataValidation((short) (2), (short) 2, (short) (5), (short) (7 - 1)); // 规定形成下拉筐的范围;(第二行第二列到第五行第k-1列) data_validation.setDataValidationType(HSSFDataValidation.DATA_TYPE_LIST); data_validation.setFirstFormula(strFormula); c131 data_validation.setSecondFormula(null); data_validation.setExplicitListFormula(true); data_validation.setSurppressDropDownArrow(false); data_validation.setEmptyCellAllowed(false); data_validation.setShowPromptBox(false); data_validation.setShowErrorBox(true); // sheet.a sheet.addValidationData(data_validation); // 把数据有效性放入到一个sheet里; try{ FileOutputStream fos = new FileOutputStream("d:\\tmp.xls"); wb.write(fos); fos.close(); }catch(Exception e){ e.printStackTrace(); } }
出现的问题:
只设置了DataValidation的数据类型时,提示null point.
需要设置公式
设置好的公式打开并不生效。
需要创建错误窗口
未去解决的问题,提示的中文乱码.
总结:了解了一下Excel的poi验证,对excel的数据验证文档具体为对象HSSF,包括操作符,第一个操作数,第二个操作数等都是很相像的。
相关文章推荐
- CMake Error: Could not find CMAKE_ROOT !!!(ubuntu14.04)
- python小打小闹之简陋版BBS
- Android 开发(启动页)
- ❀❀ 名词解释(PM、PD、UE、UI、RD....)
- 市场营销和网络营销的有机结合
- Volley 的简单学习之加载图片
- 体会大师们的智慧-散列表(哈希表)
- 数据结构与算法简记:归并排序
- Centos6.5 下Filebench 的安装
- ThinkPHP3.2自制的一个分页
- swiper的基础使用(十四)
- div贴边运动代码
- POJ 1475 Pushing Boxes(BFS)
- Oracle建立表空间和用户
- 修改目录下所有文件的某段内容
- Gson的简单用法
- jsp/servlet页面跳转丢失样式问题
- fir.im Weekly - 聊聊让人向往的远程开发工作
- (转)Android 命名规范 (提高代码可以读性)
- shell if语句