C#后台为EXCEL添加下拉列表(有效性)

string path = “Teme\D\Di.xlsx”;
XSSFWorkbook xssfworkbook;
try
{
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.ReadWrite))
{
xssfworkbook = new XSSFWorkbook(fs);
fs.Close();
}
}
catch(Exception ee)
{
WriteMessageToCardClient(MsgState.Err, “下载失败,未找到模板文件!”); return;
}
XSSFSheet sheet1 = xssfworkbook.GetSheet(“Sheet1”) as XSSFSheet;
XSSFSheet bizSheet = xssfworkbook.CreateSheet(“bizSheet”) as XSSFSheet;
XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper(sheet1);
for (int i = 0; i < 10000; i++) //Biz表里创建足够多的行
{
bizSheet.CreateRow(i);
}
//将##存到excel中
range.RefersToFormula = string.Format("{0}!$B 1 : 1: 1:B${1}", “bizSheet”, Name.Keys.Count);
range.NameName = “ColB”;
dvConstraint = (XSSFDataValidationConstraint)dvHelper.CreateFormulaListConstraint(range.NameName);
CellRangeAddressList addressList2 = null;
XSSFDataValidation validation2 = null;
addressList2 = new CellRangeAddressList(1, 65535, 1, 1);
validation2 = (XSSFDataValidation)dvHelper.CreateValidation(dvConstraint, addressList2);
validation2.CreateErrorBox(“数据不合法”, “请选择下拉列表中的值”);
validation2.ShowErrorBox = true;
sheet1.AddValidationData(validation2);

        if (xssfworkbook != null)
        {
            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.Buffer = true;
            HttpContext.Current.Response.Charset = "utf-8";
            HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("模板.xlsx"));
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
            HttpContext.Current.Response.ContentType = "application/ms-excel";
            xssfworkbook.Write(HttpContext.Current.Response.OutputStream);
            HttpContext.Current.Response.End();
        }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值