execl出现乱码 求救。。。

lovepengo 2010-06-04 10:27:52
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就出现乱码(数据中有俄语)、、、各位高手帮帮忙
...全文
290 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
HolyPlace 2010-06-04
  • 打赏
  • 举报
回复
编码问题,一步步的调试。
看你是读取的时候就有乱码,还是输出的时候。
设置一下编码
fuda_1985 2010-06-04
  • 打赏
  • 举报
回复
System.Text.Encoding.Default;
试试!
lovepengo 2010-06-04
  • 打赏
  • 举报
回复
读取的时候没有乱码。很正常 。输入到execl时不跟据时间来选择也没问题,根据时间过滤了后的数据集就保错。。。 很郁闷System.Text.Encoding.Default这个不行 试了很多种

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧