java使用POI设置单元格内容下拉框选择和单元格提示功能

来源:互联网 发布:工程网络计划紧前工作 编辑:程序博客网 时间:2024/06/02 21:19

一、设置单元格内容下拉框选择和单元格提示功能

手工设置:

excel菜单栏上--数据--有效性--允许--序列,

excel菜单栏上--数据--有效性--输入信息.


程序设置:

注意:poi的jar包最好3.9及以上。jar包版本过低可能此功能无法实现

样式:



代码:

import java.io.FileOutputStream;  import java.io.IOException;    import org.apache.poi.hssf.usermodel.DVConstraint;  import org.apache.poi.hssf.usermodel.HSSFDataValidation;  import org.apache.poi.hssf.usermodel.HSSFSheet;  import org.apache.poi.hssf.usermodel.HSSFWorkbook;  import org.apache.poi.hssf.util.CellRangeAddressList;    public class PoiTest2 {        public static void main(String[] args) throws IOException {          HSSFWorkbook wb = new HSSFWorkbook();// excel文件对象          HSSFSheet sheetlist = wb.createSheet("sheetlist");// 工作表对象            FileOutputStream out = new FileOutputStream("d:\\success.xls");          String[] textlist = { "列表1", "列表2", "列表3", "列表4", "列表5" };            sheetlist = setHSSFValidation(sheetlist, textlist, 0, 500, 0, 0);// 第一列的前501行都设置为选择列表形式.          // sheetlist = setHSSFPrompt(sheetlist, "promt Title", "prompt Content",          // 0, 500, 1, 1);// 第二列的前501行都设置提示.            wb.write(out);          out.close();      }        /**      * 设置某些列的值只能输入预制的数据,显示下拉框.      *       * @param sheet      *            要设置的sheet.      * @param textlist      *            下拉框显示的内容      * @param firstRow      *            开始行      * @param endRow      *            结束行      * @param firstCol      *            开始列      * @param endCol      *            结束列      * @return 设置好的sheet.      */      public static HSSFSheet setHSSFValidation(HSSFSheet sheet,              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);          sheet.addValidationData(data_validation_list);          return sheet;      }        /**      * 设置单元格上提示      *       * @param sheet      *            要设置的sheet.      * @param promptTitle      *            标题      * @param promptContent      *            内容      * @param firstRow      *            开始行      * @param endRow      *            结束行      * @param firstCol      *            开始列      * @param endCol      *            结束列      * @return 设置好的sheet.      */      public static HSSFSheet setHSSFPrompt(HSSFSheet sheet, String promptTitle,              String promptContent, int firstRow, int endRow, int firstCol,              int endCol) {          // 构造constraint对象          DVConstraint constraint = DVConstraint                  .createCustomFormulaConstraint("BB1");          // 四个参数分别是:起始行、终止行、起始列、终止列          CellRangeAddressList regions = new CellRangeAddressList(firstRow,                  endRow, firstCol, endCol);          // 数据有效性对象          HSSFDataValidation data_validation_view = new HSSFDataValidation(                  regions, constraint);          data_validation_view.createPromptBox(promptTitle, promptContent);          sheet.addValidationData(data_validation_view);          return sheet;      }    }  

此功能是观看了此文章实现的 可查看此网址 http://wuhaidong.iteye.com/blog/2039848

这里感谢此网址作者也帮助我解决了问题

阅读全文
0 0
原创粉丝点击