代码如下:
(1)Excel.aspx.cs private void Page_Load(object sender, System.EventArgs e)
{
//Session["DesignSearchSql"]是从另外一个页面穿过来的搜索语句,类似于 where province = '湖南'
string searchSql = Session["DesignSearchSql"].ToString();
string connStr = "server=localhost;database=mbo;uid=sa;pwd=;";
SqlConnection conn = new SqlConnection(connStr); StringBuilder sb = new StringBuilder(""); sb.Append(" SELECT * from title ");
sb.Append(searchSql);
String sqlStr = sb.ToString();
sb = null;
DataSet dsSearch = new DataSet();
SqlDataAdapter da = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand(sqlStr, conn);
cmd.CommandType = CommandType.Text;
da.SelectCommand = cmd;
da.Fill(dsSearch, "titles"); DataGrid1.DataSource = dsSearch.Tables[0];
DataGrid1.DataBind(); conn.Close();
outExcel();
} private void outExcel()
{ string _strfile; System.IO.StringWriter uread = null;
System.Web.HttpResponse uresp = null;
System.Web.UI.HtmlTextWriter usend = null; _strfile = "Sheji.XLS"; uresp = this.Page.Response;
uresp.Clear();
uresp.Buffer = true;
uresp.Charset = "";
uresp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); //解决中文乱码之关键
uresp.ContentType = "application/vnd.ms-excel";
this.Page.EnableViewState = false;
uread = new System.IO.StringWriter();
usend = new System.Web.UI.HtmlTextWriter(uread);
this.DataGrid1.RenderControl(usend);
uresp.AppendHeader("Content-Disposition", "attachment;filename=" + _strfile);
uresp.Write(uread.ToString());
uresp.End(); uread.Close();
usend.Close();
uread = null;
usend = null;
uresp = null;
}(2)Excel.aspx
<%@ Page language="c#" Codebehind="Excel.aspx.cs" AutoEventWireup="false" Inherits="Excel" %>
<%@ Register TagPrefix="igtbl" Namespace="Infragistics.WebUI.UltraWebGrid" Assembly="Infragistics.WebUI.UltraWebGrid.v2" %><form id="Form1" method="post" runat="server">
<asp:DataGrid id="DataGrid1" runat="server"></asp:DataGrid>
</form>有时候能够得到正确的excel文件
有时候excle中的中文全是乱码
实在不甚其烦
诸位请帮忙分析一下,可能是什么原因。
(1)Excel.aspx.cs private void Page_Load(object sender, System.EventArgs e)
{
//Session["DesignSearchSql"]是从另外一个页面穿过来的搜索语句,类似于 where province = '湖南'
string searchSql = Session["DesignSearchSql"].ToString();
string connStr = "server=localhost;database=mbo;uid=sa;pwd=;";
SqlConnection conn = new SqlConnection(connStr); StringBuilder sb = new StringBuilder(""); sb.Append(" SELECT * from title ");
sb.Append(searchSql);
String sqlStr = sb.ToString();
sb = null;
DataSet dsSearch = new DataSet();
SqlDataAdapter da = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand(sqlStr, conn);
cmd.CommandType = CommandType.Text;
da.SelectCommand = cmd;
da.Fill(dsSearch, "titles"); DataGrid1.DataSource = dsSearch.Tables[0];
DataGrid1.DataBind(); conn.Close();
outExcel();
} private void outExcel()
{ string _strfile; System.IO.StringWriter uread = null;
System.Web.HttpResponse uresp = null;
System.Web.UI.HtmlTextWriter usend = null; _strfile = "Sheji.XLS"; uresp = this.Page.Response;
uresp.Clear();
uresp.Buffer = true;
uresp.Charset = "";
uresp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); //解决中文乱码之关键
uresp.ContentType = "application/vnd.ms-excel";
this.Page.EnableViewState = false;
uread = new System.IO.StringWriter();
usend = new System.Web.UI.HtmlTextWriter(uread);
this.DataGrid1.RenderControl(usend);
uresp.AppendHeader("Content-Disposition", "attachment;filename=" + _strfile);
uresp.Write(uread.ToString());
uresp.End(); uread.Close();
usend.Close();
uread = null;
usend = null;
uresp = null;
}(2)Excel.aspx
<%@ Page language="c#" Codebehind="Excel.aspx.cs" AutoEventWireup="false" Inherits="Excel" %>
<%@ Register TagPrefix="igtbl" Namespace="Infragistics.WebUI.UltraWebGrid" Assembly="Infragistics.WebUI.UltraWebGrid.v2" %><form id="Form1" method="post" runat="server">
<asp:DataGrid id="DataGrid1" runat="server"></asp:DataGrid>
</form>有时候能够得到正确的excel文件
有时候excle中的中文全是乱码
实在不甚其烦
诸位请帮忙分析一下,可能是什么原因。
解决方案 »
- gridview 分页
- Asp.net有一个precompilation,可以用来预编译部署,请问在哪里配置?
- 在vs.net2005中做网页时怎么没有ComBox控件啊
- .NET中无限级新闻分类的分类如何显示
- 分母为零时的SQL语句怎么写?
- 自定义控件输入数字显示内容,输入中文显示内容
- image的imageurl如何与数据库中的某个字段绑定
- Asp.net中TextBox的TextChanged为什么不起作用啊。
- 从提交form中获取数据的问题(在线求解)
- 1、动态绑定datagrid可否定制某个列的宽度?2、一个dataGrid能否同时静态、动态绑定数据?
- asp.net如何刷新页面,如何获得IE地址栏中的网址
- 高手请进/如何像csdn左边那样级联显示(类似树结构)
Response.Buffer= true;
Response.Charset="GB2312";
Response.AppendHeader("Content-Disposition","attachment;filename=FileName.xls");
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.DataGrid1.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();