NPOI导出excel 设置下拉值
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>