2011-01-06 100 views
2

我從GridView的數據導出到Excel工作表在頁面上的GridView的.NET application.Rendered輸出實現功能下面給出頁眉和頁腳,因爲我顯示的是gridview的小部分。在Excel表導出 和數據是:導出到Excel幫助中的GridView

alt text

代碼在aspx頁面是用於在網格視圖特定貨幣列是:

<asp:TemplateField HeaderText="Value" > 
    <HeaderStyle HorizontalAlign="Left" CssClass="lblBoldTextLeftPadding clsGridHeaderDashboard" /> 
    <ItemTemplate> 
     £<%# Eval("Value") %> 
    </ItemTemplate> 
    <ItemStyle CssClass="lblNormalTextLeftPadding" Width="10%" VerticalAlign="Top" HorizontalAlign="Left" /> 
</asp:TemplateField> 

如可在Excel表見貨幣列值是[£100],但在網格視圖[£100]。

有人可以建議我如何從excel表格輸出中刪除「Â」。

我使用下面的代碼出口functionaity:

Response.Clear() 
Response.AddHeader("content-disposition", "attachment;filename=Report.xls") 
Response.Charset = "" 
Response.Cache.SetCacheability(HttpCacheability.NoCache) 
Response.ContentType = "application/vnd.xls" 
Dim objStringWriter As StringWriter = New StringWriter(sb) 
Dim objHtmlTextWriter As HtmlTextWriter = New HtmlTextWriter(objStringWriter) 
gvBidTrackingExcel.DataSource = Getdata() 
gvBidTrackingExcel.DataBind() 
gvBidTrackingExcel.RenderControl(objHtmlTextWriter) 
Response.Write(objStringWriter) 
Response.End() 

回答

2

嘗試設置你的Response.ContentType後的字符集和編碼類型:

HttpContext.Current.Response.Charset = "utf-8"; 
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("windows-1250"); 

否則:

如果這不起作用嘗試將它們設置爲文本字段。也許他們被渲染爲浮動/雙打。

這裏它設置一個類的所有小區出口前(您可以選擇自定義我的樣本,以便他們爲您的解決方案工作)

foreach(GridViewRow row in gridView.Rows) 
{ 
    if(row.RowType == DataControlRowType.DataRow) 
    { 
     for(int columnIndex = 0; columnIndex < row.Cells.Count; columnIndex++) 
     { 
      row.Cells[columnIndex].Attributes.Add("class", "text"); 
     } 
    } 
} 

添加樣式類到您的文檔的渲染後的迭代的例子你的GridView

table.RenderControl(htmlTextWriter); 
string style = @"<style> .text { mso-number-format:\@; text-align:left; } </style> "; 
HttpContext.Current.Response.Write(style); 
0

我有完全一樣的問題與Unicode版本,這是&#163更換£;似乎做的伎倆,即

myTempStr = Replace(myTempStr, "£", "&amp;#163;")