Excel CSV-数字单元格格式

时间:2020-03-06 14:45:41  来源:igfitidea点击:

我将报告生成为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