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>