java poi excel操作 下拉菜单 及数据有效性

 1 private InputStream updateTemplateStyleHSSF(InputStream inputStream,CsCustCon csCustCon) throws IOException, DAOException{
 2         HSSFWorkbook workbook = new HSSFWorkbook(inputStream);
 3         HSSFSheet firstSheet=  workbook.getSheetAt(0);
 4         List<String> strList=csConAcceDao.getAcceNameAndNoListByConId(csCustCon);
 5         String[] strs=(String[])strList.toArray(new String[strList.size()]);
 6
 7         String secondSheetName="合同附件名称和编号";
 8         HSSFSheet secondSheet=  workbook.createSheet(secondSheetName);
 9         if(null!=strs&&strs.length>0){
10             for(int i=0;i<strs.length;i++){
11                  HSSFRow row=secondSheet.createRow(i);
12                 HSSFCell cell= row.createCell(0);
13                 cell.setCellValue(strs[i]);
14             }
15         }
16         Name name=workbook.createName();
17         name.setNameName(secondSheetName);
18         name.setRefersToFormula(secondSheetName+"!$A$1:$A$"+strs.length);
19         CellRangeAddressList  newStyleRange=new CellRangeAddressList(1,65535,0,0);
20         DVConstraint constraint=DVConstraint.createFormulaListConstraint(secondSheetName);
21         HSSFDataValidation  dataValidation=new HSSFDataValidation(newStyleRange, constraint);
22         dataValidation.setShowPromptBox(true);
23         firstSheet.addValidationData(dataValidation);
24
25         ByteArrayOutputStream out=new ByteArrayOutputStream();
26         workbook.write(out);
27         byte[] contents=out.toByteArray();
28         InputStream newInputStream= new ByteArrayInputStream(contents);
29         return newInputStream;
30     }

需求说明:excel 第一页 第一列为下拉菜单 菜单的数据在第二页全部显示出来

如果 在第二页删除了一项 保存后  第一页第一列下拉菜单中 的数据就少一项

List<String> strList=csConAcceDao.getAcceNameAndNoListByConId(csCustCon);

这行代码为 返回下拉菜单中的数据

参数

InputStream inputStream 为 file 对象生成的   file 对象则是 对应的要解析的excel 生成的
 ByteArrayOutputStream out=new ByteArrayOutputStream();
         workbook.write(out);
         byte[] contents=out.toByteArray();
         InputStream newInputStream= new ByteArrayInputStream(contents);
         return newInputStream;

这段代码为 excel 更新后   重新保存 excel 文件

另:

HSSFWorkbook  对象 只能处理 2003及以前版本
XSSFWorkbook 对象  处理 2007及以后版本 
时间: 2024-10-25 13:50:30

java poi excel操作 下拉菜单 及数据有效性的相关文章

怎么在excel设置下拉菜单

在制作excel表格时,为了规范化表格填写的内容和填写人员的方便,我们需要在excel设置下拉菜单,以便于更好的管理.统计表格,分享一个怎么在excel设置下拉菜单方法. 1.打开excel表格,在这里主要是一个百度经验相关的数据,有经验数,投票数,评论数,粉丝数和红包数,在这里主要以红包数作为今天的教程设置. 2.在需要进行下拉框菜单选择的表格中,进行全选. 3.在excel主菜单中,选择"数据"功能菜单,找到"数据有效性"工具,在弹出来的功能菜单中选择"

Excel设置下拉菜单并隐藏下拉菜单来源单元格内容

一.问题来源 做实验室的进展统计表,老师让加上开始时间和完成时间,时间格式:周几_上午(下午.晚上). 这样就可以了做下拉菜单,方便填写,而且格式统一,方便查看. 二.解决办法 2.1 下来菜单 红框是数据的来源区域,要设置成一行或者一列. 2.2 隐藏数据来源

Python+Selenium笔记(八):操作下拉菜单

(一) Select类 Select类是selenium的一个特定的类,用来与下拉菜单和列表交互. 下拉菜单和列表是通过HTML的<select> 元素实现的.选择项是通过<select>中的<option>元素实现的.使用前使用下面的语句导入模块. from selenium.webdriver.support.ui import Select (二) Select类的功能及方法 功能/属性 简单说明 all_selected_options 获取下拉菜单和列表中被选

使用EXCEL设置“下拉菜单”选项功能

原创作品.出自 "深蓝的blog" 博客.欢迎转载.转载时请务必注明出处,否则有权追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/46457441 启动excel2013,选中要加入菜单条的"单元格",例如以下: 例如以下图,逐步点击(选中单元格-数据-数据验证),例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVhbmd

使用POI生成具有三级下拉菜单的Excel文档

曾在工作中遇到这种需求,研究很久编码出一个方法,提供于此供大家参考. 效果图如下: 开始贴代码,代码中部分测试数据不影响功能. 第一部分(核心处理): 此部分包含几个方面: 获取三级下拉框各列的数据: 创建每个下拉功能的名称管理器 在隐藏的sheet中生成下拉菜单所需要的row 代码如下: /** * 第一部分 * 将三个列表所有字段从数据库查询出,并生成名称管理器,存放至隐藏的sheet中 */ private static HSSFWorkbook writePorpData() { int

如何为EXCEL单元格制作下拉菜单

如何为EXCEL中的某列制作下拉菜单 下面用两种方法介绍下拉菜单的实现: 第一种方法比较简单,如果下拉菜单更改的不频繁,可以采用:第二种方法更适合菜单更改频繁的情况. 注意:如果点击单元格时右侧没有出现下拉的按钮,可能是格式丢失,可以通过复制上面单元格的方法来修复. 如何制作下拉菜单(以下内容以EXCEL2007为准,版本不同可能造成操作步骤不同) A. 先做好一个表格,如下图: B. 选择需要制作下拉菜单的列中的第一行(如性别列中的第一行,非标题行),点击菜单中[数据]-[数据有效性]-[数据

SharePoint 2010 隐藏个人操作Personal Action的部分内容(右上角下拉菜单)

SharePoint 2010 隐藏个人操作Personal Action的部分内容(右上角下拉菜单) 最近有个需求是隐藏个人操作Personal Action的部分内容(右上角下拉菜单),研究了一下需要更改Welcome.ascx文件. 文件位置: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\CONTROLTEMPLATES 在母版页中可以看到,母版页引用了这个ASP.NET控

WinForm多窗体间操作,ComboBox下拉菜单控件

1.通过操作一个窗体打开另一个窗体 已有窗体为Form1.Form1中有一个按钮,对该按钮编写点击事件: Form2 f2 = new Form2();f2.Show(); 通过这段代码来打开Form2. 在实际应用中会出现代开Form2后需要Form1隐藏的情况,此时可以加入代码:this.Hide();来实现隐藏Form1. [不能关闭Form1,如果关闭Form1,那么Form2也会关闭,因为Form1是主窗体] 2.在窗体之间进行值的传递 在某些情况下,需要用到某个已经获取到的值,为了提

JS对于导航栏、下拉菜单以及选项卡的切换操作、大图轮播(主要练习对于样式表的操作)

1.导航拦以及下拉菜单 css样式表代码 .div1 { width: 100px; height: 30px; background-color: red; float: left; margin-right: 10px; } .div1-div { width: 100%; height: 400px; background-color: green; margin-top: 30px; display: none; } JS脚本代码 <!DOCTYPE html> <html xm