精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-26
最后修改:2008-12-26
相关包:
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);
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-01-19
不行啊,不能实现啊
|
|
返回顶楼 | |
发表时间:2009-01-20
POI包版本是否为3.2????
不能实现报错? 什么现象? 请详细说明 这个东东是我们项目中用到的,应该没有问题哦:) |
|
返回顶楼 | |
发表时间: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) |
|
返回顶楼 | |
浏览 6961 次