【发布时间】:2013-12-24 03:04:16
【问题描述】:
我的内容页面中有 4 件事:
- 单个网格视图
- 执行数据库视图并在 gridview 的视图内显示查询结果的查询按钮
- export to excel 按钮,用于将 gridview 导出到 excel 中
- 用上面的excel作为附件发送电子邮件
它们工作正常,但是我注意到一列中某些单元格的格式存在一个奇怪的问题,该列有两种格式应用于值,“数字”和“一般”,“数字”是不正确的.
这里有一些前几个结果的图片来说明我的意思:
在 sql 服务器中
在内容页面中
在excel中
请注意,在 sql server 和页面上,单元格以正确的格式显示,即 XXXXX.etc(常规格式),但具有更多数字的单元格被格式化为“数字”
我将在下面发布一些代码:
网格视图
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true"></asp:GridView>
导出到excel按钮
protected void Buttonexcel_Click(object sender, EventArgs e)
{
try
{
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.Charset = "";
Response.AddHeader("content-disposition", "attachment;filename=dados.xls");
StringWriter sWriter = new StringWriter();
HtmlTextWriter hWriter = new HtmlTextWriter(sWriter);
GridView1.RenderControl(hWriter);
Response.Output.Write(sWriter.ToString());
Response.Flush();
Response.End();
}
catch (Exception ex)
{
Label1.Text = ex.ToString();
}
}
有没有一种方法可以只强制整个 xls 的“一般”格式?
【问题讨论】:
-
您可以尝试使用 Response.Write 添加样式以将数字转换为字符串。看这个链接:aspsnippets.com/Articles/…
标签: c# asp.net sql excel gridview