asp.net网页导出数据Excel参考例子

protected void doExportExcel(string name,string pid,string date1,string date2,string status)
    {
        DALservice dl = new DALservice();
        var commv = dl.getcommdatas(name, pid, date1, date2, status, Cur_Customer.Account);

        string aretdata = "";
        StringBuilder shtml = new StringBuilder();
        string statTitle = "客人名字\t证件号\t查询机构\t操作员\t" +
                "常住地\t发证地\t性别\t年龄\t" +
                "乘机次数分值\t乘机次数排名\t平均折扣分值\t平均折扣排名\t所到城市分值\t所到城市排名\t两舱比例分值\t两舱比例排名\t消费总额分值\t消费总额排名\t里程总额分值\t里程总额排名\t综合分值\t综合分值排名\t" +
                "国际商务出行次数\t国内商务出行次数\t合计商务出行次数\t国际商务出行目的地\t国内商务出行目的地\t合计商务出行目的地\t商务出行总里程\t商务出行总消费\t国际旅游出行次数\t国内旅游出行次数\t合计旅游出行次数\t国际旅游出行目的地\t国内旅游出行目的地\t合计旅游出行目的地\t旅游出行总里程\t旅游出行总消费\t国际探亲出行次数\t国内探亲出行次数\t合计探亲出行次数\t国际探亲出行目的地\t国内探亲出行目的地\t合计探亲出行目的地\t探亲出行总里程\t探亲出行总消费\t" +
                "商务频次分值\t商务频次排名\t业务范围分值\t业务范围排名\t消费能力分值\t消费能力排名\t提前规划分值\t提前规划排名\t总分分值\t总分排名\t主要出差城市\t商务出差详细季度/出差次数/乘机次数/飞行城市/平均折扣/两舱比例/溢价折扣/活动范围\t评语\t" +
                "旅游频次分值\t旅游频次排名\t消费能力分值\t消费能力排名\t提前规划分值\t提前规划排名\t假期使用分值\t假期使用排名\t旅游出行详细/出行月份/目的地/类型/消费/备注\t评语\t" +
                "计划性提前订票分值\t计划性提前订票排名\t计划性改签比例分值\t计划性改签比例排名\t计划性免票次数分值\t计划性免票次数排名\t头等舱分值\t商务舱分值\t经济舱分值\t舱位等级排名\t上午分值\t下午分值\t晚间分值\t因私分值\t因私排名\t因公分值\t因公排名\t" +
                "航空公司1/是否会员/乘机次数/占比/免票次数/可选比例/同价位/同时段/同机型\t航空公司2/是否会员/乘机次数/占比/免票次数/可选比例/同价位/同时段/同机型\t航空公司3/是否会员/乘机次数/占比/免票次数/可选比例/同价位/同时段/同机型\t" +
                "大型机次数\t中型机次数\t小型机次数\t大型机航线详细1/次数/同时段占比/同价位占比\t中型机航线详细1/次数/同时段占比/同价位占比\t小型机航线详细1/次数/同时段占比/同价位占比\t" +
                "乘机人延误航线/延误次数/航线延误率/平均延误时间\t所有航线延误次数\t所有航线平均延误时间\t1小时延误次数\t2小时延误次数\t4小时延误次数\t";
        //WriteFileLog(statTitle + "\r\n", "HumanBehaviorAnalysis");

        for (int i = 0; i < commv.Count(); i++)
        {
            ModeldatasourcePSGsyn2 modpassyn = new ModeldatasourcePSGsyn2();
            if (!string.IsNullOrEmpty(commv[i].RequestData))
            {
                modpassyn = Helper.JsonHelper.FromJson<ModeldatasourcePSGsyn2>(commv[i].RequestData);
            }
            try
            {
                aretdata = GetXML(commv[i].NotifyData, modpassyn.pid);

                if (aretdata.Replace("\t", "") == "")
                {
                    aretdata = "\"'" + modpassyn.pid + "\"\t无记录";
                }
                if (aretdata == "系统出错")
                {
                    aretdata = "\"'" + modpassyn.pid + "\"\t系统出错";
                }
                shtml.Append(aretdata + "\r\n");

                //Thread.Sleep(100);

            }
            catch
            {
            }


        }
        //string reportName = "乘机人行为分析" + date1 + "_" + DateTime.Now.ToString("yyyyMMddHHmm");
        //Response.Write("<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=gb2312\"/>" + shtml.ToString());  
        //Response.Write(shtml.ToString());
        //Response.Buffer = true;
        //Response.AppendHeader("Content-Disposition", "attachment;filename=" + reportName + ".xls");
        //Response.ContentEncoding = System.Text.Encoding.UTF8;
        //Response.ContentType = "application/vnd.ms-excel";

        Response.ContentType = "application/vnd.ms-excel";
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
        Response.Charset = "gb2312";

        Response.Write(statTitle + "\r\n" + shtml.ToString());
        string reportName = "乘机人行为分析" + date1 + "_" + DateTime.Now.ToString("yyyyMMddHHmm");
        Response.AppendHeader("Content-Disposition", "attachment;filename=" + reportName + ".xls");

        //WriteFileLog(shtml.ToString(), "HumanBehaviorAnalysis");
    }

按照注释代码写,会出现乱码现象。

最后修改:2015 年 11 月 21 日
如果觉得我的文章对你有用,请随意赞赏