c# 查询结果保存为Excel格式 TAB分割的TXT格式

 protected void Page_Load(object sender, EventArgs e)
    {

        GridView1.DataSource = dsPrintData();
        GridView1.DataBind();
    }
    public override void VerifyRenderingInServerForm(Control control)
    {
        //这里对VerifyRenderingInServerForm重写是必须的,否则会出现异常
    }


    /// <summary>
    /// 构造一个DataSet
    /// </summary>
    /// <returns></returns>
    DataSet dsPrintData()
    {
        DataSet dsPrintData = new DataSet();
        DataTable dtPrintData = new DataTable();

        #region 构造列
        DataColumn dcPrintData = new DataColumn("标题一", System.Type.GetType("System.String"));
        dtPrintData.Columns.Add(dcPrintData);
        dcPrintData = new DataColumn("标题二", System.Type.GetType("System.String"));
        dtPrintData.Columns.Add(dcPrintData);
        #endregion

        #region 构造行
        DataRow drPrintData = dtPrintData.NewRow();
        drPrintData[0] = "内容一";
        drPrintData[1] = "内容二";
        dtPrintData.Rows.Add(drPrintData);
        #endregion

        dsPrintData.Tables.Add(dtPrintData);
        return dsPrintData;
    }

    /// <summary>
    /// 查询结果保存为Excel格式
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Button1_Click(object sender, EventArgs e)
    {
        try
        {
            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "GB2312";
            Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");// 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
            Response.ContentEncoding = System.Text.Encoding.UTF7; //UTF7 用于处理普通 ASCII 字符;如果这里用UTF8就会出现乱码
            Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
            System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);

            this.GridView1.RenderControl(oHtmlTextWriter);//将GridView1上显示的内容输出到oHtmlTextWriter对象
            Response.Output.Write(oStringWriter.ToString());
            Response.Flush();
            Response.End();

        }
        catch (HttpException)
        {
        }
    }

    /// <summary>
    /// 不可能重复的随机按扭
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Button2_Click(object sender, EventArgs e)
    {
        string strCharAll = "ABCDEFGHJKLMNPQRSTUVWXYZ123456789";
        string chs = "";
        System.Random random = new Random();
        for (int index = 0; index < 5; index++)
        {
            chs += strCharAll[random.Next(strCharAll.Length - 1)].ToString();//Convert.ToChar(iChar).ToString();
        }

        Button2.Text = chs;
    }

    /// <summary>
    /// 查询结果保存为TAB分割的TXT格式
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Button3_Click(object sender, EventArgs e)
    {
        using (StreamWriter sw = new StreamWriter(Server.MapPath("file.txt")))
        {
            //System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
            //System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);

            //this.GridView1.RenderControl(oHtmlTextWriter);//将GridView1上显示的内容输出到oHtmlTextWriter对象

            //sw.Write(oStringWriter.ToString());
            //sw.Flush();
            //sw.Close();

            DataTable dt = dsPrintData().Tables[0];
            StringBuilder sb = new StringBuilder();

            sb.Append(dt.TableName + "\r\n");
            foreach (DataColumn dc in dt.Columns)
            {
                sb.Append("\t" + dc.ColumnName);
            }
            sb.Append("\r\n");
            foreach (DataRow dr in dt.Rows)
            {
                foreach (DataColumn dc in dt.Columns)
                {
                    sb.Append("\t" + dr[dc].ToString());
                }
                sb.Append("\r\n");
            }
            sw.Write(sb.ToString());
            sw.Flush();
            sw.Close();
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值