MVC 导出 简单范例合适初学者

界面:

<div id="tbl">
                <a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-remove',plain:true" οnclick="Delete()">删除</a>
                <a href="/ProjectInformation/toExcel" id="Excel" data-options="plain:true" class="easyui-linkbutton" iconcls="icon-print">导出</a>
 </div>


后台:

/// <summary>
        /// 导出到EXCEL
        /// </summary>
        public void toExcel()
        {
            string content = Request.Cookies["getPinfoIdList"].Value.ToString();
            List<int> idList = new List<int>();
            string[] cont = content.Split(',');
            for (int i = 0; i < cont.Length; i++)
            {
                if (String.IsNullOrEmpty(cont[i]))
                {
                    continue;
                }
                idList.Add(Convert.ToInt32(cont[i]));
            }

            //接收需要导出的数据
            List<ProjectInformation> list = new List<ProjectInformation>();
            foreach (var id in idList)
            {
                ProjectInformation p = db.ProjectInformations.Find(id);
                list.Add(p);
            }

            //命名导出表格的StringBuilder变量
            StringBuilder sHtml = new StringBuilder(string.Empty);

            //打印表头
            sHtml.Append("<table border=\"1\" width=\"100%\">");
            sHtml.Append("<tr height=\"40\"><td colspan=\"29    \" align=\"center\" style='font-size:24px'><b>项目汇总分析" + "</b></td></tr>");

            //打印列名
            sHtml.Append("<tr height=\"20\" align=\"center\" ><td>项目编码</td><td>行业</td><td>销售大区</td><td>省份</td><td>项目名称</td>" +
                "<td>销售人员</td><td>物资类别</td><td>投标型号</td>" +
                "<td>投标包数</td><td>投标总金额(万元)</td><td>中标金额(万元)</td>" +
                "<td>项目类型</td><td>招标单位</td><td>销售模式	</td>" +
                "<td>标书接收日期</td><td>标书完成日期</td><td>截标日期</td>" +
                "<td>开标日期</td><td>定标日期</td><td>T1公司名</td>" +
                "<td>授权代表</td><td>技术:价格:商务</td><td>T1样品情况描述</td>" +
                "<td>备案状态</td><td>投标协议书</td><td>技术确认表</td>" +
                "<td>报价分析表</td><td>标书制作人</td><td>备注</td>" +
                "</tr>");

            //循环读取List集合 
            for (int i = 0; i < list.Count; i++)
            {
                sHtml.Append("<tr height=\"20\" align=\"left\"><td>" + list[i].itemCode_C + "</td><td>" + list[i].sys_hy_C + "</td><td>" + list[i].regionBelongs_C + "</td><td>" + list[i].province_C + "</td><td>" + list[i].projectName_C
                    + "</td><td>" + list[i].salesEngineerName_C + "</td><td>" + list[i].tenderSuppliesCategory_C + "</td><td>" + list[i].sys_tbxh_C
                    + "</td><td>" + list[i].ttNumber_N + "</td><td>" + list[i].tbzje_D + "</td><td>" + list[i].zbje_D
                    + "</td><td>" + list[i].projectType_C + "</td><td>" + list[i].biddingUnit_C + "</td><td>" + list[i].xsModel_C
                    + "</td><td>" + list[i].dateReceiptTenders_T + "</td><td>" + list[i].tenderCompletionDate_T + "</td><td>" + list[i].cutoffTenderDate_T
                    + "</td><td>" + list[i].startTenderDate_T + "</td><td>" + list[i].dbrqDate_T + "</td><td>" + list[i].companyName_C
                    + "</td><td>" + list[i].authorizedRepresentative_C + "</td><td>" + list[i].evaluationPrinciples_C + "</td><td>" + list[i].ypqkms_C
                    + "</td><td>" + list[i].porStatus_C + "</td><td>" + list[i].tbxyBook_C + "</td><td>" + list[i].jsqrTable_C
                    + "</td><td>" + list[i].bjfxTable_C + "</td><td>" + list[i].tenderProducer_C + "</td><td>" + list[i].bz_C

                    + "</td></tr>");
            }

            //打印表尾
            sHtml.Append("</table>");

            //调用输出Excel表的方法
            HelperComm.ExportToExcel("application/ms-excel", "项目汇总分析.xls", sHtml.ToString());
        }
 
 
公共类HelperComm
 
/// <summary>
        /// 输出EXCEL表的方法
        /// </summary>
        /// <param name="FileType"></param>
        /// <param name="FileName"></param>
        /// <param name="ExcelContent"></param>
        public static void ExportToExcel(string FileType, string FileName, string ExcelContent)
        {
            System.Web.HttpContext.Current.Response.Charset = "UTF-8";
            System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
            System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8).ToString());
            System.Web.HttpContext.Current.Response.ContentType = FileType;
            System.IO.StringWriter tw = new System.IO.StringWriter();
            System.Web.HttpContext.Current.Response.Output.Write(ExcelContent.ToString());
            System.Web.HttpContext.Current.Response.Flush();
            System.Web.HttpContext.Current.Response.End();
        }
 
/// <summary>
        /// 导出excel模板
        /// </summary>
        /// <param name="model"></param>
        public static void excelModel(string FileUrl, string FileName) 
        {
            String FullFileName = System.Web.HttpContext.Current.Server.MapPath(FileUrl);
            FileInfo DownloadFile = new FileInfo(FullFileName);
            System.Web.HttpContext.Current.Response.Clear();
            System.Web.HttpContext.Current.Response.ClearHeaders();
            System.Web.HttpContext.Current.Response.Buffer = false;
            System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream";
            System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8));
            System.Web.HttpContext.Current.Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
            System.Web.HttpContext.Current.Response.WriteFile(DownloadFile.FullName);
            System.Web.HttpContext.Current.Response.Flush();
            System.Web.HttpContext.Current.Response.End(); 
        }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值