| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2007 人关注过本帖
标题:[求助]导出excel出现乱码
只看楼主 加入收藏
wjh_36
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2006-5-10
收藏
 问题点数:0 回复次数:9 
[求助]导出excel出现乱码

在导出的时候,在我的机器上导出excel没事,换了一台机器,就出现了乱码,这是怎么回事,代码如下:

if (this.DataGrid1.Items.Count==0) return;
string FileName="NewFile"+DateTime.Today.Year.ToString()+DateTime.Today.Month.ToString()+DateTime.Today.Day.ToString();
Response.Clear();
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";
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.BackColor=System.Drawing.Color.White;
this.DataGrid1.BorderColor=System.Drawing.Color.Black;
this.DataGrid1.HeaderStyle.BackColor=System.Drawing.Color.White;
this.DataGrid1.HeaderStyle.ForeColor=System.Drawing.Color.Black;
this.DataGrid1.RenderControl(oHtmlTextWriter);

Response.Write("<meta http-equiv=Content-Type content=text/html;charset=gb2312>");
Response.Write(" 单位水、电、气收费明细表 ");
Response.Write(" 单位名称:"+this.dwmc.Text.ToString());

Response.Write(oStringWriter.ToString());
Response.End();

搜索更多相关主题的帖子: excel 乱码 
2006-11-03 08:29
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 
换一下编码试过了吗
比如utf-8 utf-7或者 default

此号自封于2006年11月30日
2006-11-03 09:44
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 

试试这个

HttpContext.Current.Response.Charset ="gb2312";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF7;

HttpContext.Current.Response.ContentType = "application/ms-excel";
HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=" + excelName + ".xls");


grid.Page.EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
grid.RenderControl(hw);

HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();


此号自封于2006年11月30日
2006-11-03 09:46
wjh_36
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2006-5-10
收藏
得分:0 

好,我试试看


2006-11-03 10:32
wjh_36
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2006-5-10
收藏
得分:0 
不行

2006-11-03 10:57
wjh_36
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2006-5-10
收藏
得分:0 
导出的excel打开后是这些:::



+ADw-/tr+AD4APA-tr+AD4-
+ADw-td+AD4-01+ADw-/td+AD4APA-td+AD5nLFxAaYJRtQA8-/td+AD4APA-td+AD4-1+ADw-/td+AD4APA-td+AD4-True+ADw-/td+AD4-
+ADw-/tr+AD4APA-tr+AD4-
+ADw-td+AD4-0101+ADw-/td+AD4APA-td+AD5t+1KgZbCV+wA8-/td+AD4APA-td+AD4-1+ADw-/td+AD4APA-td+AD4-True+ADw-/td+AD4-
+ADw-/tr+AD4APA-tr+AD4-
+ADw-td+AD4-0102+ADw-/td+AD4APA-td+AD57oXQGZbCV+wA8-/td+AD4APA-td+AD4-1+ADw-/td+AD4APA-td+AD4-True+ADw-/td+AD4-
+ADw-/tr+AD4APA-tr+AD4-
+ADw-td+AD4-0103+ADw-/td+AD4APA-td+AD5lsJX7Vt5lNnrZADw-/td+AD4APA-td+AD4-1+ADw-/td+AD4APA-td+AD4-True+ADw-/td+AD4-
+ADw-/tr+AD4APA-tr+AD4-
+ADw-td+AD4-02+ADw-/td+AD4APA-td+AD5P4WBvZw1SoQA8-/td+AD4APA-td+AD4-1+ADw-/td+AD4APA-td+AD4-True+ADw-/td+AD4-
+ADw-/tr+AD4APA-tr+AD4-
+ADw-td+AD4-0201+ADw-/td+AD4APA-td+AD5t+1KgZbCV+wA8-/td+AD4APA-td+AD4-1+ADw-/td+AD4APA-td+AD4-True+ADw-/td+AD4-
+ADw-/tr+AD4APA-tr+AD4-
+ADw-td+AD4-0202+ADw-/td+AD4APA-td+AD57oXQGZbCV+wA8-/td+AD4APA-td+AD4-1+ADw-/td+AD4APA-td+AD4-True+ADw-/td+AD4-
+ADw-/tr+AD4APA-tr+AD4-
+ADw-td+AD4-0203+ADw-/td+AD4APA-td+AD5lsJX7Vt5lNnrZADw-/td+AD4APA-td+AD4-1+ADw-/td+AD4APA-td+AD4-True+ADw-/td+AD4-
+ADw-/tr+AD4APA-tr+AD4-
+ADw-td+AD4-03+ADw-/td+AD4APA-td+AD5lP3tWbNWJxAA8-/td+AD4APA-td+AD4-1+ADw-/td+AD4APA-td+AD4-True+ADw-/td+AD4-
+ADw-/tr+AD4APA-tr+AD4-
+ADw-td+AD4-0301+ADw-/td+AD4APA-td+AD5t+1KgZbCV+wA8-/td+AD4APA-td+AD4-1+ADw-/td+AD4APA-td+AD4-True+ADw-/td+AD4-
+ADw-/tr+AD4APA-tr+AD4-
+ADw-td+AD4-0302+ADw-/td+AD4APA-td+AD57oXQGZbCV+wA8-/td+AD4APA-td+AD4-1+ADw-/td+AD4APA-td+AD4-True+ADw-/td+AD4-
+ADw-/tr+AD4APA-tr+AD4-
+ADw-td+AD4-0303+ADw-/td+AD4APA-td+AD5lsJX7Vt5lNnrZADw-/td+AD4APA-td+AD4-1+ADw-/td+AD4APA-td+AD4-True+ADw-/td+AD4-
+ADw-/tr+AD4APA-tr+AD4-
+ADw-td+AD4-04+ADw-/td+AD4APA-td+AD5eyWU/XvqLvgA8-/td+AD4APA-td+AD4-1+ADw-/td+AD4APA-td+AD4-True+ADw-/td+AD4-
+ADw-/tr+AD4APA-tr+AD4-
+ADw-td+AD4-0401+ADw-/td+AD4APA-td+AD5t+1KgZbCV+wA8-/td+AD4APA-td+AD4-1+ADw-/td+AD4APA-td+AD4-True+ADw-/td+AD4-

2006-11-03 10:59
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 

此号自封于2006年11月30日
2006-11-03 12:38
小海龟
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1068
专家分:4
注 册:2006-8-1
收藏
得分:0 

using System.Reflection;// For Missing.Value and BindingFlags
using System.Runtime.InteropServices; // For COMException
using Excel = Microsoft.Office.Interop.Excel;
using System.Data.SqlClient;
using Component;
using System.Data.OleDb;

try
{
string FileName = "123.xls";
System.Data.DataTable dt = GetData();
long totalCount=dt.Rows.Count;
long rowRead=0;
float percent=0;
Excel.Application xlApp=null;
xlApp=new Excel.Application();
Excel.Workbooks workbooks=xlApp.Workbooks;
Excel.Workbook workbook=workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
Excel.Worksheet worksheet=(Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
Excel.Range range;

range = worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[dt.Rows.Count + 1, dt.Columns.Count]);
//range.Cells.Borders.LineStyle = 1;设置表格线的大小
range.NumberFormatLocal = "@";//文本格式

//写入字段
for(int i=0;i<dt.Columns.Count;i++)
{
worksheet.Cells[1,i+1]=dt.Columns[i].ColumnName;
range=(Excel.Range)worksheet.Cells[1,i+1];
}

//worksheet.Cells[0, 0] = "'6951-1";
for(int r=0;r<dt.Rows.Count;r++)
{
worksheet.Cells[r+2,1]=r+1;
for(int i=0;i<dt.Columns.Count;i++)
{
if (i != dt.Columns.Count)
{
worksheet.Cells[r + 2, i + 1] = dt.Rows[r][i];
}
}
rowRead++;
percent=((float)(100*rowRead))/totalCount;
System.Windows.Forms .Application.DoEvents();
}

workbook.Saved =true;
workbook.SaveCopyAs(FileName);
MessageBox.Show("文件保存成功");
m_strSampleFolder = null;
workbook.Close(false, m_objOpt, m_objOpt);
xlApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
GC.Collect();

}
catch //(Exception ex)
{
//MessageBox.Show(ex.ToString());
MessageBox.Show("文件保存失败");
}


[bc09] 犯强汉者,虽远比诛!
2006-11-04 10:24
wjh_36
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2006-5-10
收藏
得分:0 
using Excel = Microsoft.Office.Interop.Excel;
这个我的怎么引用不到啊

2006-11-06 13:38
小海龟
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1068
专家分:4
注 册:2006-8-1
收藏
得分:0 
你要先在项目解决方案中引用Excel的类库啊.

[bc09] 犯强汉者,虽远比诛!
2006-11-07 20:35
快速回复:[求助]导出excel出现乱码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018187 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved