1. 程式人生 > >NPOI導出excel 設置下拉值

NPOI導出excel 設置下拉值

seek exception eas easy patch getc cep ons code



 public void DownloadTemplate(List<string> celNameList, JArray mb_jarray,List<int> cellIndexs,string timeFormat)
        {
            bool isXSSF = true;
            try
            {
                workbook = new XSSFWorkbook();
            }
            catch (Exception ex)
            {
                workbook 
= new HSSFWorkbook(); isXSSF = false; } try { if (workbook != null) { ISheet sheet = workbook.CreateSheet("派遣人員合同數據模板"); IRow row = sheet.CreateRow(0);
for(int i=0;i< celNameList.Count; i++) { row.CreateCell(i).SetCellValue(celNameList[i]); } ISheet sheet1 = workbook.GetSheetAt(0);//獲得第一個工作表 if (isXSSF) { XSSFDataValidationHelper helper
= new XSSFDataValidationHelper((XSSFSheet)sheet1);//獲得一個數據驗證Helper for (int i = 0; i < mb_jarray.Count; i++) { JArray array = (JArray)JsonConvert.DeserializeObject(mb_jarray[i]["vlaue"].ToString()); CellRangeAddressList regions = new CellRangeAddressList(1, 65535,int.Parse(mb_jarray[i]["cel"].ToString()), int.Parse(mb_jarray[i]["cel"].ToString())); IDataValidation validation = helper.CreateValidation(helper.CreateExplicitListConstraint(array.ToObject<List<string>>().ToArray()), regions);//創建約束 validation.CreateErrorBox("錯誤", "請按右側下拉箭頭選擇!");//不符合約束時的提示 validation.ShowErrorBox = true;//顯示上面提示 = True sheet1.AddValidationData(validation);//添加進去 } } else { HSSFDataValidationHelper helper = new HSSFDataValidationHelper((HSSFSheet)sheet1);//獲得一個數據驗證Helper for (int i = 0; i < mb_jarray.Count; i++) { JArray array = (JArray)JsonConvert.DeserializeObject(mb_jarray[i]["vlaue"].ToString()); CellRangeAddressList regions = new CellRangeAddressList(1, 65535, int.Parse(mb_jarray[i]["cel"].ToString()), int.Parse(mb_jarray[i]["cel"].ToString())); IDataValidation validation = helper.CreateValidation(helper.CreateExplicitListConstraint(array.ToObject<List<string>>().ToArray()), regions);//創建約束 validation.CreateErrorBox("錯誤", "請按右側下拉箭頭選擇!");//不符合約束時的提示 validation.ShowErrorBox = true;//顯示上面提示 = True sheet1.AddValidationData(validation);//添加進去 } } sheet1.ForceFormulaRecalculation = true; if (cellIndexs.Count > 0) { ICellStyle style0 = workbook.CreateCellStyle(); IDataFormat dataformat = workbook.CreateDataFormat(); style0.DataFormat = dataformat.GetFormat(timeFormat); for (int i = 0; i < cellIndexs.Count; i++) { row.GetCell(cellIndexs[i]).CellStyle = style0; } } } var ms = new NpoiMemoryStream(); ms.AllowClose = false; workbook.Write(ms); ms.Flush(); ms.Seek(0, SeekOrigin.Begin); ms.AllowClose = true; HttpContext curContext = HttpContext.Current; curContext.Response.ContentType = "application/vnd.ms-excel"; curContext.Response.ContentEncoding = Encoding.UTF8; curContext.Response.Charset = ""; curContext.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, Encoding.UTF8)); long fileSize = ms.Length; curContext.Response.AddHeader("Content-Length", fileSize.ToString()); curContext.Response.BinaryWrite(ms.GetBuffer()); curContext.Response.End(); } catch (Exception ex) { Console.WriteLine("Exception: " + ex.Message); } }

  new ExcelHelper2(" 導入模板.xls").DownloadTemplate(celNameList, mb_jarray, new List<int> { 4, 17, 18 }, "yyyy-MM-dd");
//列名
                    List<string> celNameList = new List<string>();
                    
                    celNameList.Add("姓名");
                    celNameList.Add("性別");

celNameList.Add("合同狀態");。。。

JArray mb_jarray = new JArray();
 //性別 
JObject XBObject = new JObject();
XBObject.Add(
"vlaue", JsonConvert.SerializeObject(new string[] { "", "" }));
XBObject.Add(
"cel", "1");
mb_jarray.Add(XBObject);

//合同狀態 JObject ZTObject = new JObject();
ZTObject.Add(
"vlaue", JsonConvert.SerializeObject(new string[] { "正常履行", "已終止" }));
ZTObject.Add(
"cel", "2");
mb_jarray.Add(ZTObject);

前臺調用
                    <a href="../ashx/dispatch.ashx?action=down" class="easyui-linkbutton" iconcls="icon-export" plain="true">導出模板</a>

NPOI導出excel 設置下拉值