在GridView中导出到excel帮助

在GridView中导出到excel帮助,gridview,asp.net-2.0,export-to-excel,Gridview,Asp.net 2.0,Export To Excel,我在.net应用程序中实现了将数据从gridview导出到excel工作表的功能。页面上gridview的呈现输出如下所示: 不用担心页眉和页脚,因为我正在显示gridview的一小部分。 excel表中导出的数据为: aspx页面中的代码用于网格视图中的特定货币列: <asp:TemplateField HeaderText="Value" > <HeaderStyle HorizontalAlign="Left" CssClass="lblBoldTextLef

我在.net应用程序中实现了将数据从gridview导出到excel工作表的功能。页面上gridview的呈现输出如下所示:

不用担心页眉和页脚,因为我正在显示gridview的一小部分。 excel表中导出的数据为:

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>

尝试在响应后设置字符集和编码类型。ContentType:

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

如果这不起作用,请尝试将它们设置为文本字段。可能它们被渲染为浮点/双精度

这里是一个迭代示例,它在导出之前将一个类设置为所有单元格(您必须自定义我的示例,以便它们适用于您的解决方案)

foreach(gridView.Rows中的gridView行)
{
if(row.RowType==DataControlRowType.DataRow)
{
对于(int columnIndex=0;columnIndex
在呈现GridView后,将样式类添加到文档中

table.RenderControl(htmlTextWriter);
string style = @"<style> .text { mso-number-format:\@; text-align:left; } </style> ";
HttpContext.Current.Response.Write(style);
table.RenderControl(htmlTextWriter);
字符串样式=@“。文本{mso编号格式:\@;文本对齐:左;}”;
HttpContext.Current.Response.Write(样式);

我遇到了完全相同的问题,用unicode版本替换了英镑,即£;似乎在耍把戏,比如说

myTempStr = Replace(myTempStr, "£", "&amp;#163;")
table.RenderControl(htmlTextWriter);
string style = @"<style> .text { mso-number-format:\@; text-align:left; } </style> ";
HttpContext.Current.Response.Write(style);
myTempStr = Replace(myTempStr, "£", "&amp;#163;")