ASP.NET CSV响应,Excel指数格式问题

在我的ASP.NET应用程序中,我需要将DataTable作为CSV响应写入客户。 除了有一个数字的列以外,一切正常。

例如:7002136138603600000

但是,当我在Excel中打开CSV时,它以指数格式显示。

像这样的东西:7E + 18

您能否让我知道需要做些什么才能将这些数值显示为testing而不是指数格式?

谢谢,Mahesh

关于CSV数字格式,请点击这里: http : //support.microsoft.com/kb/214233


我曾多次输出到Excel。 只需使用HtmlTextWriter将GridView的输出写入string生成器即可发送响应。

你可以find两个例子:

更多search结果: http : //www.google.com/search?q=export+gridview+to+excel

所以,我认为最简单的方法是绑定到GridView,并将其作为HTML编写,如其他示例所示,除非另外还需要CSV。

你不能用CSV来做。 用Excel试一试。 在单元格中创build一个值为“7002136138603600000”的电子表格,前面加上一个单引号(')来表示它是文本。 Excel将正确显示完整的号码。 将其另存为CSV。 刷新。 该号码将以指数格式显示。

或者,您可以使用HTML。 将名称空间xmlns:x =“urn:schemas-microsoft-com:office:excel”添加到您的html根目录,并将此属性添加到您的td元素。

x:str="'7002136138603600000" 

Excel将显示为文本。 对于一个更完整的例子,像我提到的那样创buildExcel文档并保存为html。

如果您知道您的客户正在使用Excel 2003或更高版本,则还可以使用XML。

在文本编辑器中打开文件,您可能会发现数字输出正确。 Excel只是默认为一些长数字的指数格式。

它是否必须是CSV? 如果是这样,那么你几乎坚持从Excel的默认行为。

如果它不一定是CSV,那么请查看Excel XML格式,这将使您更好地控制显示格式(在Excel中可以完成的任何操作都可以在XML文件string中完成)。 当然,这仅在Office 2003及更高版本中受支持。

它很容易添加asc字符32时,数字都是数字,使用函数来确定数字是否都是数字,如果是真的,那么简单地添加asi 32的数字(如果需要转换为string)。 在微软的Excel 2007和Windows 7testingcsv文件,它工作正常,不知道早期版本。

Interesting Posts