Jan使用程序创建CSV文件。然后可以在Excel中打开此文件以进行进一步分析。当Jan在Windows中双击CSV文件时,Excel将启动,然后加载该文件。问题在于,该文件在打开时不会被Excel解析。代替逗号分隔的值位于不同的列中,每个记录都出现在单个列中。

此行为的原因可能很简单,并且与非Excel程序将数据存储在CSV文件中的格式有关。要了解这一点,至关重要的是要了解Excel如何打开CSV文件。

当您在Excel中打开CSV文件时(通过在Windows中双击或使用“文件” |“在Excel中打开”),程序会将文件中的任何逗号都视为定界符。这很有道理;毕竟,该文件应该包含逗号分隔的值(CSV)。打开文件时,您不能覆盖此自动过滤。

那么,Excel如何处理传入的数据?请暂时考虑一下CSV文件是否包含以下四个记录:

a,b,c,d,e "a,b,c,d",e a,"b,c",d,e "a,b,c,d,e"

就Excel而言,第一条记录有五个字段,以逗号分隔。第二条记录只有两个字段“ a,b,c,d”

和“ e”。在“ a,b,c,d”两边加上引号会导致Excel将字符串视为离散单元。换句话说,Excel会忽略引号之间可能出现的任何逗号。

考虑到引号引起的影响,您可能可以弄清楚Excel如何解释第三条和第四条记录。在这种情况下,第三条记录只有四个字段,而第四条记录被解释为只有一个字段。

这与似乎加载错误的CSV文件有什么关系?创建CSV文件的程序很有可能在每条记录周围加上一对引号。这将导致Excel中记录中的所有内容都被视为单个字段,这意味着在加载CSV文件时,记录中的所有内容都将显示在单个列中。

有两种方法可以验证这一点。首先是使用记事本简单地打开CSV文件并查看每个记录。 (在Windows中右键单击CSV文件,选择“打开方式” |“选择程序”,然后选择“记事本”。)

另一种方法是重命名CSV文件,以便其扩展名不是.csv而是.txt。当您选择在Excel中打开此文件时,将启动“文本导入向导”。选择定界,单击下一步,然后您可以看到选择了哪些定界符。注意文本限定符;如果更改它,则可以立即在对话框底部看到Excel如何解释文件记录。

如果发现CSV文件中的每个记录周围都有多余的引号,则可以执行三件事。第一种是更改创建CSV文件的程序,以便它不添加多余的引号-这样您就可以毫无问题地导入了。第二种是继续将CSV文件加载到Excel中,这样每条记录都在A列中。请注意,环绕引号已消失,在导入过程中已去除。这意味着您现在可以使用“文本到列”向导将A列中的数据分成单独的列。

最后,您可以做的第三件事是创建一个宏,该宏将打开CSV文件并为您解析。如果您将随着时间打开许多格式完全相同的CSV文件,这将特别有用。您的宏可以根据需要进行精心设计,甚至可以在导入时设置列格式和处理数据。 ExcelTips的其他问题中提供了创建此类宏的方法。

| _ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(3002)适用于Microsoft Excel 97、2000、2002和2003。您可以在以下位置找到适用于Excel功能区界面的本技巧的版本(Excel 2007及更高版本):