zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    OpenGL入门1.3:着色器 GLSL
    OpenGL入门1.2:渲染管线简介,画三角形
    C++回调,函数指针
    JavaScript 比较和逻辑运算符
    JS 运算符
    JS 函数
    JS 对象
    JS 数据类型
    JS 变量
    JS 注释
  • 原文地址:https://www.cnblogs.com/janeaiai/p/10614836.html
Copyright © 2011-2022 走看看