mvc将数据导入到Excel中

1.数据导入Excel方法:

 public ActionResult ExportToExcel()

{        

  //定义数据源

   var list = _DB.Records
                .Where(condition)
                .OrderByDescending(a => a.DateTime)
                .ToList();


            var date = Convert.ToDateTime("0001-1-1 0:00:00");          
        
            if (date == null)
                date = DateTime.Now;


            string fileName = string.Format("MemberUpgrade{0}.xls", date.ToString("yyyy_MM_dd"));//生成的Excel名称
            string filePath = string.Format("{0}\\{1}", Server.MapPath("~/Temp"), fileName);
            FileInfo file = new FileInfo(filePath);
            if (!Directory.Exists(file.Directory.FullName))
                Directory.CreateDirectory(file.Directory.FullName);
            if (System.IO.File.Exists(filePath))
                System.IO.File.Delete(filePath);
            try
            {
                using (ExcelHelper excelHelper = new ExcelHelper(filePath))
                {
                    excelHelper.HDR = "YES";
                    excelHelper.IMEX = "0";

          //Excel文件列名
                    Dictionary<string, string> tableDefinition = new Dictionary<string, string>();
                    tableDefinition.Add("序号", "nvarchar(100)");
                    tableDefinition.Add("会员编号", "nvarchar(100)");
                    tableDefinition.Add("会员姓名", "nvarchar(100)");
                    tableDefinition.Add("备注", "nvarchar(100)");
                    tableDefinition.Add("时间", "nvarchar(100)");

            //Excel内表名
                    excelHelper.WriteTable("MemberUpgrade", tableDefinition);
                    string decimalQuoter = (CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator.Equals(",") ? "\"" : String.Empty);
                    var i = 0;

//导入数据
                    foreach (var c in list)
                    {
                        i++;

                        StringBuilder sb = new StringBuilder();
                        sb.Append("INSERT INTO [MemberUpgrade] (序号,会员编号,会员姓名,备注,时间) VALUES (");
                        sb.Append('"'); sb.Append(i.ToString()); sb.Append("\",");//序号
                        sb.Append('"'); sb.Append(c.Account.UserName); sb.Append("\",");
                        sb.Append('"'); sb.Append(c.Account.AccountName); sb.Append("\",");
                        sb.Append('"'); sb.Append(c.Remark); sb.Append("\",");
                        sb.Append('"'); sb.Append(c.DateTime.ToString("yyyy-MM-dd HH:mm"));sb.Append('"');
                        sb.Append(")");
                        excelHelper.ExecuteCommand(sb.ToString());
                    }
                    excelHelper.Dispose();
                }

                return RedirectToAction("Download", "Finance", new { id = fileName });//生成并下载Excel
            }
            catch (Exception)
            {
                return RedirectToAction("Index", "Result", new { s = false, m = "对不起!当前程序所在服务器不支持自动生成Excel表格!" });
            }

}

 

 

2.生成并下载Execl(FinanceController下)

    public ActionResult Download(string id)
        {
            var filePath = Server.MapPath("~/Temp/" + id);
            Response.Clear();
            Response.Charset = "utf-8";
            Response.HeaderEncoding = Encoding.UTF8;
            Response.AddHeader("content-type", "application/x-msdownload");
            Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", id));
            Response.ContentType = "text/xls";
            Response.BinaryWrite(System.IO.File.ReadAllBytes(filePath));
            Response.End();
            return null;
        }

 

 备注:在view页面之间调用ExportToExcel即可;

 

 

 

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值