ASP.NET 数据导出至EXCEL

下面这些为程序的导出按钮点击事件后台处理方法


//导出按钮

        protectedvoid butPrint_Click(objectsender, EventArgs e)

        {

            DataTabledt = new DataTable("aaa");

            dt = Query();

            DataSetds = new DataSet();//数据集,当有多个数据表数据时,需循环输出

            ds.Tables.Add(dt);

            ExportDsToXls(this.Page, "序列号详细信息", ds, dt.Rows.Count); 

        }

 

 

        //查询数据

        privateDataTable Query()

        {

            DataTabledtrecord = GoodRecord.SelDepotRecordList(txtDepotID.Text,txtGoodID.Text, "toexcel");

 

            returndtrecord;

        }

 

        //根据数据拼接table

        public string GetExportString(DataSetds)

        {

            StringBuilderdata = new StringBuilder();//因为循环很多,用StringBuilder会快很多

 

            foreach (DataTable tb inds.Tables)//若多个数据表

                //data+= tb.TableName + "\n";

                data.Append("<table cellspacing=\"0\"cellpadding=\"5\" rules=\"all\"border=\"1\">");

                //写出列名

                data.Append("<tr style=\"font-weight: bold; white-space:nowrap;\">");

                foreach(DataColumn column intb.Columns)

                {

                    data.Append("<td>");

                   data.Append(column.ColumnName);

                    data.Append("</td>");

                }

                data.Append("</tr>");

 

                //写出数据

                foreach(DataRow row intb.Rows)

                {

                    data.Append("<tr>");

                    foreach(DataColumn column intb.Columns)

                    {

                        data.Append("<td style=\"vnd.ms-excel.numberformat:@\">");

                       data.Append(row[column].ToString());

                        data.Append("</td>");

                    }

                    data.Append("</tr>");

                }

                data.Append("</table>");

            }

            returndata.ToString();

        }

        //导出为Excel

        public void ExportDsToXls(Pagepage, string fileName, DataSetds,int rowcount)

        {

 

            stringcoding = "UTF-8";

            if(rowcount < 3)

                coding = "GB2312";

 

 

            page.Response.Clear();

            page.Response.Buffer = true;

            page.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + ""+DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls");

            page.Response.Charset = coding;// "UTF-8";

            page.Response.ContentEncoding =System.Text.Encoding.GetEncoding(coding);//UTF-8

            page.Response.ContentType = "application/ms-excel";//设置输出为Excel文件            page.EnableViewState = false;

           page.Response.Write(GetExportString(ds));

            page.Response.End();

        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值