zoukankan      html  css  js  c++  java
  • 【经验分享】解决Excel中乱码问题

        #region 导出至Excel

            protected void btnExport_Click(object sender, EventArgs e)
            {
                //取得数据
                DataTable dtExportItemLy = null;

                string where = " 1 =1 ";
                DataSet ds = DalHelper.Logic_Performance_Area.GetExportList(where);
                ds.Tables[0].DefaultView.Sort = "C11_9";
                ds.Tables[0].Columns.Add("OrderId");
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    int k = ds.Tables[0].Rows.Count - i;
                    ds.Tables[0].Rows[i]["OrderId"] = k.ToString();
                }
                ds.Tables[0].DefaultView.Sort = "OrderId Asc";
                //年度
                DataTable tempdt = new DataTable();
                DataColumn tempdc1 = new DataColumn("Year");
                tempdt.Columns.Add(tempdc1);
                //排名
                DataColumn tempdc2 = new DataColumn("OrderId");
                tempdt.Columns.Add(tempdc2);
                //企业名称
                DataColumn tempdc3 = new DataColumn("Enterprise_Name");
                tempdt.Columns.Add(tempdc3);
                //得分
                DataColumn tempdc4 = new DataColumn("C11_9");
                tempdt.Columns.Add(tempdc4);
                //制表人
                DataColumn tempdc5 = new DataColumn("CommitMan");
                tempdt.Columns.Add(tempdc5);
                //提交时间
                DataColumn tempdc6 = new DataColumn("CommitDate");
                tempdt.Columns.Add(tempdc6);

               
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    DataRow tempdr = tempdt.NewRow();
                    tempdr["Year"] = ds.Tables[0].Rows[i]["Year"].ToString();
                    tempdr["OrderId"] = ds.Tables[0].Rows[i]["OrderId"].ToString();
                    tempdr["Enterprise_Name"] = ds.Tables[0].Rows[i]["Enterprise_Name"].ToString();
                    tempdr["C11_9"] = ds.Tables[0].Rows[i]["C11_9"].ToString();
                    tempdr["CommitMan"] = ds.Tables[0].Rows[i]["CommitMan"].ToString();
                    tempdr["CommitDate"] = ds.Tables[0].Rows[i]["CommitDate"].ToString();
                    tempdt.Rows.Add(tempdr);
                }
                dtExportItemLy = tempdt;

                if (dtExportItemLy == null) return;
                if (dtExportItemLy.Rows.Count <= 0)
                {
                    AlertShow(this.Page, "暂无数据可以导出!");
                    return;
                }
              
                try
                {
                    dtExportItemLy.Columns[0].ColumnName = "年度";
                    dtExportItemLy.Columns[1].ColumnName = "排名";
                    dtExportItemLy.Columns[2].ColumnName = "企业名称";
                    dtExportItemLy.Columns[3].ColumnName = "得分";
                    dtExportItemLy.Columns[4].ColumnName = "制表人";
                    dtExportItemLy.Columns[5].ColumnName = "提交时间";
                    this.CreateExcel(dtExportItemLy, "区域审核排名");

                    Response.Buffer = true;
                    Response.Clear();
                    Response.Flush();
                    AlertShow(this.Page, "导出成功!");
                }
                catch (Exception ex)
                {
                    AlertShow(this.Page, "" + ex.Message + "导出失败!");
                    return;
                }
                finally
                {
                    Response.End();
                }
            }

            public void CreateExcel(DataTable dt, string FileName)
            {
                System.Web.UI.WebControls.DataGrid m_Datagrid = new DataGrid();
                m_Datagrid.DataSource = dt;
                m_Datagrid.DataBind();

                Response.Clear();
                Response.Buffer = true;
                Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                Response.AppendHeader("content-disposition","attachment;filename=\"" + System.Web.HttpUtility.UrlEncode("中文名称",System.Text.Encoding.UTF8) + ".xls\"");
                Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");

                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);
                m_Datagrid.RenderControl(oHtmlTextWriter);
                Response.Output.Write(oStringWriter.ToString());
                Response.Flush();
                Response.End();

            }

            public override void VerifyRenderingInServerForm(Control control)
            { }
            #endregion

  • 相关阅读:
    LYDSY模拟赛day3 序列
    LYDSY模拟赛day3 涂色游戏
    LYDSY模拟赛day3 平均数
    hdu1757 A Simple Math Problem
    清北国庆day1 (脑)残
    poj3070 Fibonacci
    uva10870 递推关系Recurrences
    湖南附中模拟day1 瞭望塔
    湖南附中模拟day1 收银员
    湖南附中模拟day1 金坷垃
  • 原文地址:https://www.cnblogs.com/a311300/p/1371562.html
Copyright © 2011-2022 走看看