根据Excel模板导出数据

           实现代码:

           DataSet ds = GetDataSet(pager.RecordCount + 10000, 1);
            #region 导出excel
            // 根据模板文件创建副本
            string name = DateTime.Now.ToString("yyyyMMddhhmmss");
            string webPath = string.Format("~/xlsTemplate/{0}.xls", name);
            string filePath = Server.MapPath(webPath);
            File.Copy(Server.MapPath("~/xlsTemplate/SysLogList.xls"), filePath);
            // 使用OleDb驱动程序连接到副本
            OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0;");
            using (conn)
            {
                conn.Open();
                // 增加记录
                foreach (DataRow item in ds.Tables[0].Rows)
                {
                    OleDbCommand cmd = new OleDbCommand("INSERT INTO [Sheet1$]([编号],[日志类型],[日志类型ID],[日志描述],[用户帐号],[用户ID],[操作时间])VALUES (@log_id,@log_type_name,@log_type,@log_description,@add_user_id,@username,@add_time)", conn);
                    cmd.Parameters.AddWithValue("@log_id", item["log_id"].ToString());
                    cmd.Parameters.AddWithValue("@log_type_name", GetLogTypeName(int.Parse(item["log_type"].ToString())));
                    cmd.Parameters.AddWithValue("@log_type", item["log_type"].ToString());
                    cmd.Parameters.AddWithValue("@log_description", item["log_description"].ToString());
                    cmd.Parameters.AddWithValue("@add_user_id", item["add_user_id"].ToString());
                    cmd.Parameters.AddWithValue("@username", item["username"].ToString());
                    cmd.Parameters.AddWithValue("@add_time", item["add_time"].ToString());
                    cmd.ExecuteNonQuery();
                    cmd.Dispose();
                }
            }
            // 输出副本的二进制字节流
            Response.Clear();
            Response.ContentType = "application/ms-excel";
            Response.AppendHeader("Content-Disposition", "attachment;filename=" + name + ".xls");
            Response.BinaryWrite(File.ReadAllBytes(filePath));

            // 删除副本
            File.Delete(filePath);
            #endregion

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋斗---现在进行时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值