Excel CSV-数字单元格格式
我将报告生成为CSV文件。
当我尝试在Excel中打开文件时,它会根据单元格的内容对数据类型进行假设,并相应地对其进行重新格式化。
例如,如果CSV文件包含
...,005,...
然后,Excel将其显示为5.
有没有办法覆盖它并显示005?
我希望对文件本身做一些事情,以便用户可以双击CSV文件将其打开。
我使用Excel 2003.
解决方案
我们可以简单地将范围设置为文本格式。
另外,这里还有一篇很好的文章,介绍了数字格式以及如何对其进行编程。
我相信当我们导入文件时,我们可以选择列类型。使它成为文本而不是数字。我现在没有复印件要检查。
打开CSV时,我们将获得文本导入向导。在向导的最后一步,我们应该能够将特定的列作为文本导入,从而保留" 00"前缀。之后,我们可以按照需要的任何方式格式化单元格。
我尝试使用Excel 2007,它似乎可以正常工作。
不要使用CSV,请使用SYLK。
http://en.wikipedia.org/wiki/SYmbolic_LinK_(SYLK)
它提供了对格式的更多控制,Excel不会尝试通过检查内容来猜测字段的类型。看起来有点复杂,但是我们可以使用一个很小的子集。
实际上,我发现,至少从Office 2003开始,我们可以将Excel电子表格另存为XML文件。
因此,我可以产生一个XML文件,当我双击它时,它将在Excel中打开。
它提供与SYLK相同的控制级别,但是XML语法更直观。
打开.csv文件时,没有一种简单的方法可以控制Excel应用的格式。但是,下面列出的三种方法可能会有所帮助。
我的首选是第一选择。
选项1更改文件中的数据
我们可以按如下方式更改.csv文件中的数据...,= 005,...
这将在Excel中显示为...,005,...
Excel会将数据保留为公式,但是复制列并使用粘贴特殊值将摆脱公式,但保留格式
选项2格式化数据
如果仅是格式问题,并且该列中的所有数据长度均为三位数。然后在Excel中打开数据,然后使用此自定义格式000格式化包含数据的列
选项3将文件扩展名更改为.dif(数据交换格式)
更改文件扩展名,然后使用文件导入向导来控制格式。
双击后,具有.dif扩展名的文件将由Excel自动打开。
一步步:
- 将文件扩展名从.csv更改为.dif
- 双击文件以在Excel中打开它。
- "文件导入向导"将启动。
- 将"文件类型"设置为"定界",然后单击"下一步"按钮。
- 在"分隔符"下,勾选"逗号",然后单击"下一步"按钮。
- 单击显示的数据的每一列,然后选择"列数据格式"。值为" 005"的列的格式应为"文本"。
- 单击完成按钮,Excel将使用我们指定的格式打开文件。
好吧,Excel永远不会弹出CSV文件向导。如果将其重命名为.txt,则下次在Excel中执行"文件">"打开"时,将看到向导。
将CSV加载到oleDB中,并强制将所有推断出的数据类型转换为字符串
我问了同样的问题,然后用代码回答了。
基本上,在加载csv文件时,oledb驱动程序会做出假设,我们可以告诉它要做出什么假设。
我的代码虽然将所有数据类型强制为字符串,但更改架构非常容易。
为了我的目的,我使用xslt以我想要的方式获取ti,但是我正在解析各种各样的文件。
在字段前加单引号。 Excel会将其视为文本,即使它看起来像一个数字也是如此。
...,`005,...
编辑:这是错误的。仅当将数据直接输入到Excel中时,单引号技巧才起作用。当我们在CSV文件中使用它时,不需要的字段中会出现撇号。
http://support.microsoft.com/kb/214233