首页 >> 网络营销词典 >> 其他类别 >> excel下拉菜单

excel下拉菜单[编辑]


概述
Excel下拉列表通常都是利用“数据有效性”来实现的,通过“数据有效性”设置,可以让Execl的某一单元格出现下来菜单的效果,现在就为大家介绍几种常见的制作方法。

第一种方法:数据有效性

      第一步:打开Excel工作薄——>选定某一单元格——>点击上方的“数据(D)”菜单——>点击“有效性(L)”;

      第二步:将弹出“数据有效性”窗口,在“设置”选项卡中“有效性条件”下方找到“允许(A)”,将其设置为“序列”——>然后再将“忽略空值(B)”和“提供下拉箭头(I)”两项前面打上勾;

     第三步:最后在“来源(S)”中,输入您需要的菜单选项数据,比如,需要设置1、2、3为下拉菜单中的可选项,就在“来源(S)”下方输入“1,2,3”,每一组数据之间必须以英文标点的逗号“,”隔开,不能用中文全角的逗号“,”——>最后点击“确定”退出即可;

     补充说明:在“来源(S)”中还可以直接引用某些单元格内的数据作为下拉菜单的可选项,只需要在“来源(S)”下方输入一串代码即可,比如,想要让第一列的单元格A1至A5中的数据作为可选项,就在“来源(S)”下方输入“=$A$1:$A$5”(不含引号,且必须使用英文符号和标点);

二种方法:自动生成可选项的范围

      第一步:首先定义可选项数据的范围,也就是说出现在下拉菜单中的选项是哪些数据,这个范围只能是某一行或某一列;使用鼠标框选某一行或某一列的数据——>然后点击上方的“插入”菜单——>点击“名称(N)”——>选择“自定义(D)”;

     第二步:将弹出的“自定义名称”窗口,在“在当前工作薄中的名称(W)”下输入“dw”——>点击右边的“添加”——>点击“确定”退出;

     第三步:选中要设置Excel下拉列表的单元格后——>点击“有效性”——>在“设置”选项卡中,将“允许(A)”设置为“序列”——>在“来源(S)”下输入“=dw”(不含引号)——>点击“确定”即可;

第三种方法:筛选

      利用“筛选”功能自动生成Excel下拉选项,采用此方法会将Excel工作薄的某一列中的所有数据都作为下拉菜单中的可选项;

      第一步:打开Excel工作薄——>用鼠标框选住需要设置Excel下拉选项的某一行内容(如,单位名称、产品名称、日期、数量这一行);

       第二步:然后点击上方的“数据(D)”菜单——>点击“筛选”——>选择“自动筛选”;

采用“自动筛选”方法生产的Excel下拉列表、Excel下拉菜单、Excel下拉选项,会将整个一列的数据都作为可选项被使用;

 

第四种方法:NPOI代码也可以实现上面的效果

HSSFSheet sheet1 = hssfworkbook.CreateSheet("Sheet1");
CellRangeAddressList regions = new CellRangeAddressList(0, 65535, 0, 0);
DVConstraint constraint = DVConstraint.CreateExplicitListConstraint(new string[] { "itemA", "itemB", "itemC" });
HSSFDataValidation dataValidate = new HSSFDataValidation(regions, constraint);
sheet1.AddValidationData(dataValidate);

下面对代码作一下简要说明:
      先设置一个需要提供下拉的区域,关于CellRangeAddressList构造函数参数的说明请参见上一节:
CellRangeAddressList regions = new CellRangeAddressList(0, 65535, 0, 0);然后将下拉项作为一个数组传给CreateExplicitListConstraint作为参数创建一个约束,根据要控制的区域和约束创建数据有效性就可以了。

      但是这样会有一个问题:Excel中允许输入的序列来源长度最大为255个字符,也就是说当下拉项的总字符串长度超过255是将会出错。那么如果下拉项很多的情况下应该怎么处理呢?答案是通过引用的方式。步骤如下:
先创建一个Sheet专门用于存储下拉项的值,并将各下拉项的值写入其中:
HSSFSheet sheet2 = hssfworkbook.CreateSheet("ShtDictionary");
sheet2.CreateRow(0).CreateCell(0).SetCellValue("itemA");
sheet2.CreateRow(1).CreateCell(0).SetCellValue("itemB");
sheet2.CreateRow(2).CreateCell(0).SetCellValue("itemC");然后定义一个名称,指向刚才创建的下拉项的区域:
HSSFName range = hssfworkbook.CreateName();
range.Reference = "ShtDictionary!$A1:$A3";
range.NameName = "dicRange";最后,设置数据约束时指向这个名称而不是字符数组:
HSSFSheet sheet1 = hssfworkbook.CreateSheet("Sheet1");
CellRangeAddressList regions = new CellRangeAddressList(0, 65535, 0, 0);

DVConstraint constraint = DVConstraint.CreateFormulaListConstraint("dicRange");
HSSFDataValidation dataValidate = new HSSFDataValidation(regions, constraint);
sheet1.AddValidationData(dataValidate);

 

参考资料: excel下拉菜单制作方法汇总http://office.jb51.net/exceltable/3532.html
扩展阅读: excel合并单元格的快捷键设置方法 excel减法函数的使用及相关问题实例解答
相关词条:

office

空间流量

合作编辑:

网络营销词典内容均由网友提供,仅供参考。如发现词条内容有问题,请发邮件至info # wm23.com。

词条信息

浏览次数:83

编辑次数:0历史版本

创建者: 张婉凤

最近更新:2015/4/10 7:36:54

词条分类导航

关于网络营销教学网站| 本站动态| 网站地图| 版权声明| 联系作者| 问题和建议|

版权声明:网络营销教学网站所有作品版权均归原作者所有,未经书面许可,严禁任何形式的转载/转贴、出版、篡改、汇编、编译等。