execl出现乱码 求救。。。
protected void tbnDownLoadReport_Click(object sender, EventArgs e)
{
ViewState["startTime"] = txtCreateTime.Value;
ViewState["endTime"] = txtEndTime.Value;
DataTable tblDatas = new DataTable("Summary");
DataColumn dc = null;
dc = tblDatas.Columns.Add("Game Pack", Type.GetType("System.String"));
dc = tblDatas.Columns.Add("Subscriptions via activation code", Type.GetType("System.String"));
dc = tblDatas.Columns.Add("Subscriptions via points", Type.GetType("System.String"));
dc = tblDatas.Columns.Add("Subscriptions via partners", Type.GetType("System.String"));
dc = tblDatas.Columns.Add("Total Subscriptions", Type.GetType("System.String"));
DataTable dtSummary = Package.GetPackages();
DataRow newRow;
foreach (DataRow row in dtSummary.Rows)
{
newRow = tblDatas.NewRow();
int viaActivationCode = Order.FindCountbyActivationCode(row["PackageID"].ToString(), ViewState["startTime"].ToString(), ViewState["endTime"].ToString());
int viaPoints = Order.FindCountwithPiont(row["PackageID"].ToString(), ViewState["startTime"].ToString(), ViewState["endTime"].ToString());
int viaPartners = Order.FindCountwithPartnerLog(row["PackageID"].ToString(), ViewState["startTime"].ToString(), ViewState["endTime"].ToString());
newRow["Game Pack"] = row["PackageID"].ToString();
newRow["Subscriptions via activation code"] = viaActivationCode.ToString();
newRow["Subscriptions via points"] = viaPoints.ToString();
newRow["Subscriptions via partners"] = viaPartners.ToString();
newRow["Total Subscriptions"] = (viaActivationCode + viaPoints + viaPartners).ToString();
tblDatas.Rows.Add(newRow);
}
DataTable tblDetailed = new DataTable("Detailed");
dc = tblDetailed.Columns.Add("User ID", Type.GetType("System.String"));
dc = tblDetailed.Columns.Add("Game Pack", Type.GetType("System.String"));
dc = tblDetailed.Columns.Add("Subscription source", Type.GetType("System.String"));
dc = tblDetailed.Columns.Add("Subscription date", Type.GetType("System.String"));
DataTable dtDetailed = Order.GetDetailed(ViewState["startTime"].ToString(), ViewState["endTime"].ToString());
foreach (DataRow row in dtDetailed.Rows)
{
newRow = tblDetailed.NewRow();
newRow["User ID"] = row["OrderID"].ToString();
string s = row["Name"].ToString();
newRow["Game Pack"] = row["Name"].ToString();
if (row["SubscriptionCode"].ToString() != "")
{
newRow["Subscription source"] ="Activation Code";
}
if (Order.GetPartnerLogCount(Convert.ToInt32(row["orderID"])) > 0)
{
newRow["Subscription source"] = "Partner #1";
}
if (Order.GetPointsCount(Convert.ToInt32(row["orderID"])) > 0)
{
newRow["Subscription source"] = "Points";
}
newRow["Subscription date"] = row["CreateTime"].ToString();
tblDetailed.Rows.Add(newRow);
}
try
{
Response.Clear();
Response.Buffer = true;
Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
//Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
//Page.Response.Charset = "utf-8";
Response.ContentEncoding = System.Text.Encoding.Unicode;
Response.ContentType = "application/ms-excel";
this.EnableViewState = false;
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.IO.StringWriter oStringWriter1 = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
System.Web.UI.HtmlTextWriter oHtmlTextWriter1 = new System.Web.UI.HtmlTextWriter(oStringWriter1);
DataGrid grid = new DataGrid();
grid.CssClass = "grid1";
grid.HeaderStyle.CssClass = "head";
grid.EnableViewState = false;
//grid.RenderControl(oHtmlTextWriter);
grid.DataSource = tblDatas.DefaultView;
grid.DataBind();
foreach (DataGridItem item in grid.Items)
{
item.Style["vnd.ms-excel.numberformat"] = "@";
}
//grid.RenderControl(oHtmlTextWriter);
DataGrid gridDetailed = new DataGrid();
gridDetailed.CssClass = "grid1";
gridDetailed.HeaderStyle.CssClass = "head";
gridDetailed.EnableViewState = false;
//gridDetailed.RenderControl(oHtmlTextWriter1);
gridDetailed.DataSource = tblDetailed.DefaultView;
gridDetailed.DataBind();
foreach (DataGridItem item in gridDetailed.Items)
{
item.Style["vnd.ms-excel.numberformat"] = "@";
}
grid.RenderControl(oHtmlTextWriter);
gridDetailed.RenderControl(oHtmlTextWriter1);
Response.Write("Summary");
Response.Write(oStringWriter.ToString());
Response.Write("<br> ");
Response.Write("Detailed");
Response.Write(oStringWriter1.ToString());
Response.End();
}
catch (Exception ex)
{
}
finally
{
tblDatas.Dispose();
tblDetailed.Dispose();
}
为什么这段代码根据时间删选数据后execl就出现乱码(数据中有俄语)、、、各位高手帮帮忙