【问题标题】:Data format issue. Export GridView to Excel数据格式问题。将 GridView 导出到 Excel
【发布时间】:2011-02-17 17:32:11
【问题描述】:

当我将 GridView 导出到 Excel 时,GridView 中有一个字符串 (1008901023816550000000) 在 Excel 中以某种方式保存为科学数字 (1.0089E+21)。

我正在使用 .Net 4.0。

这是我尝试过的,但他们没有解决问题:

  1. 将DataFormatString="{0:g}" 添加到BoundColumn 标记中。
  2. 在调用RenderControl 之后设置style。
    string style = @"<style> .text { mso-number-format:\@; } </script> ";

谁能解释一下这个问题?

【问题讨论】:

  • 在值前加一个单引号 (') 以强制 Excel 将其视为字符串而不是数字?不知道这是否适用于编程,但它适用于直接手动输入 Excel。
  • @Marc B:谢谢。我刚试过,但是带有单引号的 '1008901023816550000000 也会被存储。

标签: c# asp.net excel gridview


【解决方案1】:

试试这个,它会工作的。

string style = @"<style> TD { mso-number-format:\@; } </style> ";

【讨论】:

  • sza - 我知道为时已晚,但只是为了更新,你试过上面的代码吗?只需添加一行。您不必更改数据。
【解决方案2】:

假设您使用 CSV 文件执行导出:

这是 Excel 难以摆脱的一个怪癖。我知道的唯一想法是尝试在 CSV 文件中使用这样的格式:

="1008901023816550000000"

这将强制它成为返回所需文本的公式。

【讨论】:

  • @sza:是的,你被等号和双引号困住了。对不起。但是考虑到 Excel 会做什么和不会做什么,这可能是唯一可能的方法。从好的方面来说,就电子表格的计算和格式而言,它是真正的文本值,而不是数字。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多