论坛首页 入门技术论坛

poi 3.2 通过数据有效性,设置Excel单元格为列表实现

浏览 6848 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-12-26   最后修改:2008-12-26
OO

相关包:

import org.apache.poi.hssf.usermodel.DVConstraint;

import org.apache.poi.hssf.usermodel.HSSFDataValidation;

import org.apache.poi.hssf.util.CellRangeAddressList;

 

数据有效性代码:

    /**

     * 方法名称:SetDataValidation

     * 内容摘要:设置数据有效性

     * @param firstRow

     * @param firstCol

     * @param endRow

     * @param endCol 

     */

private static HSSFDataValidation SetDataValidation(short firstRow,

short firstCol, short endRow, short endCol) {

//设置下拉列表的内容

String[] textList = {

“列表1”,

“列表2”,

“列表3”,

“列表4”,

“列表5”};

//加载下拉列表内容

DVConstraint constraint = DVConstraint.createExplicitListConstraint(textList);

//设置数据有效性加载在哪个单元格上。

//四个参数分别是:起始行、终止行、起始列、终止列

CellRangeAddressList regions =

                            new CellRangeAddressList(firstRow,endRow, firstCol, endCol);

//数据有效性对象

HSSFDataValidation data_validation = new HSSFDataValidation(regions, constraint);

 

return data_validation;

}

 

添加到Sheet:

     //调用接口方法加载数据有效性            

         HSSFDataValidation data_validation =

                  SetDataValidation((short)3, (short)(cellIndex+1), (short)500,(short)(cellIndex+1));        

         aSheet.addValidationData(data_validation);                            


 

   发表时间:2009-01-19  
不行啊,不能实现啊
0 请登录后投票
   发表时间:2009-01-20  
POI包版本是否为3.2????

不能实现报错? 什么现象? 请详细说明

这个东东是我们项目中用到的,应该没有问题哦:)
0 请登录后投票
   发表时间:2009-01-23   最后修改:2009-01-24
我这里也不行,因为是读模板, 模板里面有宏,不知道还要设置什么没有,抛出下面的错误,如果是没有宏的模板或者是用poi新建一个work book就没有这个问题,能成功显示。请楼主多多指教

java.lang.IllegalStateException: Unexpected (org.apache.poi.hssf.record.UnknownRecord) while looking for DV Table insert pos
at org.apache.poi.hssf.model.RecordOrderer.findDataValidationTableInsertPos(RecordOrderer.java:240)
at org.apache.poi.hssf.model.RecordOrderer.findSheetInsertPos(RecordOrderer.java:95)
at org.apache.poi.hssf.model.RecordOrderer.addNewSheetRecord(RecordOrderer.java:89)
at org.apache.poi.hssf.model.Sheet.getOrCreateDataValidityTable(Sheet.java:1752)
at org.apache.poi.hssf.usermodel.HSSFSheet.addValidationData(HSSFSheet.java:369)
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics