CSV导出:保留前导零

时间:2011-07-08 16:13:49

标签: excel csv

我正在开发一个.NET应用程序,它导出CSV文件在Excel中打开,而我在Excel中打开文件时遇到保留前导零的问题。我使用了http://creativyst.com/Doc/Articles/CSV/CSV01.htm#CSVAndExcel

中提到的方法

这很有效,直到用户决定将CSV文件保存在Excel中。如果在Excel中再次打开文件,则前导零将丢失。

生成CSV文件时我能做些什么来防止这种情况发生。

4 个答案:

答案 0 :(得分:2)

这不是CSV问题。

This is Excel loving to play with CSV files

将扩展名更改为其他内容。

答案 1 :(得分:1)

正如@GSerg所提到的,这不是CSV问题。

如果您的用户必须在Excel中编辑/保存,则需要选择整个工作表,右键单击并选择“格式化单元格”,然后在打开csv文件后从类别列表中选择“文本”。这将保留前导零,因为数字将被视为简单文本。

或者,您可以使用Open XML SDK 2.0或其他一些Excel库从csv数据创建xlsx文件,并通过programmaticaly将Cell类型设置为Text,以便将最终用户排除在等式之外。

答案 2 :(得分:1)

我找到了一个很好的解决方法,如果你在电话号码的任何地方添加一个空格,则该单元格不会被视为数字并被处理作为Excel和Apple的iWork Numbers中的文本单元

这是迄今为止我发现的唯一可以与Numbers配合使用的解决方案。

是的我知道这个数字有一个空格,但这很容易处理大块的数据,你只需要选择一个列并删除所有空格。

此外,如果这与网络相关,那么大多数网络类型的内容都可以,用户在数字字段中输入空格。例如,您可以通过手机轻松拨打电话。

挑战在于首先在那里占据空间。

使用中:

01202123456 = 1202123456

01202 123456 = 01202 123456

答案 3 :(得分:-1)

好的,新发现。

使用 Mac上的快速预览查看CSV文件,电话栏将完美显示,但使用Numbers或Excel完全打开文件会破坏该列。

在某种程度上,Mac OS X能够正确处理该列而无需用户干预。

我现在正致力于最好/最简单的方法,让网站输出一个普遍接受的CSV,并保留电话号码。

但也许有了这个信息,其他人对如何让Numbers以与Quick Preview相同的方式处理文件有所了解?

相关问题