用NPOI導出Excel,生成下拉列表、以及下拉聯動列表(第1篇/共3篇)

最近帥帥的小毛驢遇到一個很奇葩的需求:

    導出Excel報表,而且還要帶下拉框,更奇葩的是,下拉框還是聯動的。

小毛驢一天比較忙,所以這等小事自然由我來爲她分憂了。經歷了兩天,做了幾種解決方案,最後完美把這個問題解決了。

小毛驢本應該會比較開心的,結果剛好解決那天我把她惹生氣了(表情:尬笑),老婆大人對不起,請原諒我吧~ (2017.11.24)

 

好了,言歸正傳,接下來說一下這幾個解決方案,各有各的優缺點。

首先聲明,本系列的文章比較長,一共分三篇,本文是第一篇;

請各位看官耐心看,我會向大家詳細分享 “漁” 技術,謝謝~

 

解決方案一:

用 NPOI 的 DVConstraint.CreateExplicitListConstraint 方法:

老規矩,上馬!哦不,上碼:

 1 /// <summary>
 2 /// 生成excel下拉列表demo
 3 /// </summary>
 4 public void CreateCellDropDownList()
 5 {
 6     HSSFWorkbook workbook = new HSSFWorkbook();//從流內容創建Workbook對象
 7     ISheet sheet = workbook.CreateSheet("sheetOne");//創建工作表
 8 
 9     //設置生成下拉框的行和列
10     CellRangeAddressList cellRegions = new CellRangeAddressList(0, 65535, 0, 1);
11 
12     //設置 下拉框內容
13     DVConstraint constraint = DVConstraint.CreateExplicitListConstraint(
14         new string[] { "選項一", "選項二", "選項三" });
15 
16     //綁定下拉框和作用區域,並設置錯誤提示信息
17     HSSFDataValidation dataValidate = new HSSFDataValidation(cellRegions, constraint);
18     dataValidate.CreateErrorBox("輸入不合法", "請輸入下拉列表中的值!");
19     dataValidate.ShowPromptBox = true;
20 
21     sheet.AddValidationData(dataValidate);
22 
23     //導出到文件
24     string filePath = Server.MapPath("~/ExportFiles/CellDropDownList.xls");
25     FileStream fs = new FileStream(filePath, FileMode.Create);
26     workbook.Write(fs);
27     fs.Close();
28 }

 

這種方案的優缺點:

優點:設置下拉選項比較容易,思維沒有很複雜;

缺點:當下拉選項的長度超過255個字符後,就會報錯,從而生成不了。

 

本文相關內容導航:

1.NPOI生成不受下拉選項長度255字符限制的導出方式,以及N級下拉聯動;

2.在Excel中製作下拉列表,以及下拉聯動列表的方法和原理。

 

帥帥的小毛驢

2017-11-24

 

下面給大家推薦兩個小福利:

      1. 支付寶領紅包,每天都能領取最高99元。領取的紅包在支付時可以抵扣現金!
      2. 一款覆蓋淘寶、天貓全場商品95%的內部優惠券搜索神器。 
        掃描二維碼下載APP後,輸入激活碼:code888,即可自用省錢 + 分享賺錢!最高幫您節省90%的購物資金!
      3.           
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章