魔兽争霸3冰封王座地图下载

 找回密碼
 馬上注冊

QQ登錄

只需一步,快速開始

掃一掃,訪問微社區

分布式系統框架(V1.3) 輕松承載百億數據,千萬流量!討論專區 - 源碼下載 - 官方教程

HttpHelper萬能框架(V2.3-含.netcore) HttpHelper官方出品,無敵框架討論區 - 源碼下載 - 在線測試和代碼生成

HttpHelper爬蟲類(V2.0) 最牛的爬蟲類,沒有爬不到只有想不到 源碼 - 代碼生成器 - 討論區 - 教程- 例子

查看: 10435|回復: 8
打印 上一主題 下一主題

魔兽争霸3冰封王座版本: [Excel] C#GridViewExport幫助類,美化導出

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2013-3-13 10:43:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
                            C#GridViewExport幫助類
導讀部分
-------------------------------------------------------------------------------------------------------------
C#基類庫蘇飛版--系列教程導航
//www.6251207.com/thread-655-1-1.html

下載之前你首先要注冊成為會員哦,注冊之后就可以直接下載啦

主要功能如下
1.將整GridView的數據導出到Excel中關增加一個效果線做美化
最新的GridViewExport操作類
看下面代碼吧
[C#] 純文本查看 復制代碼
 魔兽争霸3冰封王座地图下载 www.6251207.com /// <summary>
/// 類說明:GridViewExport
/// 編 碼 人:蘇飛
/// 聯系方式:361983679  
/// 更新網站:[url=//www.6251207.com/thread-655-1-1.html]//www.6251207.com/thread-655-1-1.html[/url]
/// </summary>
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Text;

namespace DotNet.Utilities
{
    /// <summary>
    /// Summary description for GridViewExport
    /// </summary>
    public class GridViewExport
    {
        public GridViewExport()
        {
            //
            // TODO: Add constructor logic here
            //
        }

        public static void Export(string fileName, GridView gv)
        {
            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.AddHeader(
                "content-disposition", string.Format("attachment; filename={0}", fileName));
            HttpContext.Current.Response.ContentType = "application/ms-excel";
            //HttpContext.Current.Response.Charset = "utf-8";


            using (StringWriter sw = new StringWriter())
            {
                using (HtmlTextWriter htw = new HtmlTextWriter(sw))
                {
                    //  Create a form to contain the grid
                    Table table = new Table();
                    table.GridLines = GridLines.Both;  //單元格之間添加實線

                    //  add the header row to the table
                    if (gv.HeaderRow != null)
                    {
                        PrepareControlForExport(gv.HeaderRow);
                        table.Rows.Add(gv.HeaderRow);
                    }

                    //  add each of the data rows to the table
                    foreach (GridViewRow row in gv.Rows)
                    {
                        PrepareControlForExport(row);
                        table.Rows.Add(row);
                    }

                    //  add the footer row to the table
                    if (gv.FooterRow != null)
                    {
                        PrepareControlForExport(gv.FooterRow);
                        table.Rows.Add(gv.FooterRow);
                    }

                    //  render the table into the htmlwriter
                    table.RenderControl(htw);

                    //  render the htmlwriter into the response
                    HttpContext.Current.Response.Write(sw.ToString());
                    HttpContext.Current.Response.End();
                }
            }
        }

        /// <summary>
        /// Replace any of the contained controls with literals
        /// </summary>
        /// <param name="control"></param>
        private static void PrepareControlForExport(Control control)
        {
            for (int i = 0; i < control.Controls.Count; i++)
            {
                Control current = control.Controls;
                if (current is LinkButton)
                {
                    control.Controls.Remove(current);
                    control.Controls.AddAt(i, new LiteralControl((current as LinkButton).Text));
                }
                else if (current is ImageButton)
                {
                    control.Controls.Remove(current);
                    control.Controls.AddAt(i, new LiteralControl((current as ImageButton).AlternateText));
                }
                else if (current is HyperLink)
                {
                    control.Controls.Remove(current);
                    control.Controls.AddAt(i, new LiteralControl((current as HyperLink).Text));
                }
                else if (current is DropDownList)
                {
                    control.Controls.Remove(current);
                    control.Controls.AddAt(i, new LiteralControl((current as DropDownList).SelectedItem.Text));
                }
                else if (current is CheckBox)
                {
                    control.Controls.Remove(current);
                    control.Controls.AddAt(i, new LiteralControl((current as CheckBox).Checked ? "True" : "False"));
                }

                if (current.HasControls())
                {
                    PrepareControlForExport(current);
                }
            }
        }


        /// <summary>
        /// 導出Grid的數據(全部)到Excel
        /// 字段全部為BoundField類型時可用
        /// 要是字段為TemplateField模板型時就取不到數據
        /// </summary>
        /// <param name="grid">grid的ID</param>
        /// <param name="dt">數據源</param>
        /// <param name="excelFileName">要導出Excel的文件名</param>
        public static void OutputExcel(GridView grid, DataTable dt, string excelFileName)
        {
            Page page = (Page)HttpContext.Current.Handler;
            page.Response.Clear();
            string fileName = System.Web.HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(excelFileName));
            page.Response.AddHeader("Content-Disposition", "attachment:filename=" + fileName + ".xls");
            page.Response.ContentType = "application/vnd.ms-excel";
            page.Response.Charset = "utf-8";

            StringBuilder s = new StringBuilder();
            s.Append("<HTML><HEAD><TITLE>" + fileName + "</TITLE><META http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"></head><body>");

            int count = grid.Columns.Count;

            s.Append("<table border=1>");
            s.AppendLine("<tr>");
            for (int i = 0; i < count; i++)
            {

                if (grid.Columns.GetType() == typeof(BoundField))
                    s.Append("<td>" + grid.Columns.HeaderText + "</td>");

                //s.Append("<td>" + grid.Columns.HeaderText + "</td>");

            }
            s.Append("</tr>");

            foreach (DataRow dr in dt.Rows)
            {
                s.AppendLine("<tr>");
                for (int n = 0; n < count; n++)
                {
                    if (grid.Columns[n].Visible && grid.Columns[n].GetType() == typeof(BoundField))
                        s.Append("<td>" + dr[((BoundField)grid.Columns[n]).DataField].ToString() + "</td>");

                }
                s.AppendLine("</tr>");
            }

            s.Append("</table>");
            s.Append("</body></html>");

            page.Response.BinaryWrite(System.Text.Encoding.GetEncoding("utf-8").GetBytes(s.ToString()));
            page.Response.End();
        }

    }
}

本帖被以下淘專輯推薦:

沙發
發表于 2013-4-14 10:19:54 | 只看該作者
板凳
發表于 2013-5-5 12:58:26 | 只看該作者
地板
發表于 2014-4-2 08:39:15 | 只看該作者
5
發表于 2014-11-7 22:45:37 | 只看該作者
6
發表于 2016-1-16 22:04:04 | 只看該作者
7
發表于 2016-3-25 21:35:30 | 只看該作者
8
發表于 2019-5-31 17:52:19 | 只看該作者
9
發表于 2019-6-9 15:17:38 | 只看該作者
您需要登錄后才可以回帖 登錄 | 馬上注冊

本版積分規則

QQ|手機版|小黑屋|手機版|聯系我們|關于我們|廣告合作|魔兽争霸3冰封王座地图下载 ( 豫ICP備17001017號-1)

GMT+8, 2019-10-19 05:48

© 2017-2018

快速回復 魔兽争霸3冰封王座地图下载 返回列表
网贷火龙果APP下载 微信大富贵赢钱软件挂 二十一点如何必胜 时时彩专家在线预测网 pc预测软件手机版 武汉红灯区哪里最多的地方 l老时时开奖号码 北京pk10下载 宝彩娱乐是骗局吗 重庆时时彩官网 重庆时时龙虎合开奖app 内蒙古时时投注方法 一比一提现的现金棋牌 pk10追345678窍门 广州按摩会所丝袜 重庆时时开彩结果记录