【发布时间】:2011-05-25 05:26:52
【问题描述】:
我有一个包含内容的 csv 文件:
"x","y","-z"
当我导入它时,我得到:
如何绕过此转换?
更新
如果你尝试:
"x","y",="-z,a"
“,a”未导入。
如果你在前面放一个空格:
"x","y",=" -z"
或
"x","y"," -z"
它会正常工作
【问题讨论】:
-
最佳答案是 MikeD
我有一个包含内容的 csv 文件:
"x","y","-z"
当我导入它时,我得到:
如何绕过此转换?
更新
如果你尝试:
"x","y",="-z,a"
“,a”未导入。
如果你在前面放一个空格:
"x","y",=" -z"
或
"x","y"," -z"
它会正常工作
【问题讨论】:
在值前面加上等号
="x",="y",="-z"
【讨论】:
您的问题是,通过使用 CSV 扩展名,您正在强制 excel 使用其非常严格的 CSV 约定来解释文件,这通常会违背您尝试执行的任何操作,除非最初创建了 CSV 文件通过 Excel。导入此 CSV 文件最简单、最可靠的方法是将其重命名为 TXT 文件,然后使用 excel 中的导入功能以您想要的方式强制转换列。
【讨论】:
FileCopy srcFile, srcFile & ".txt") 将使用新扩展名制作文件的临时副本。打开后就可以用Kill srcFile & ".txt"去掉它
我在 Excel 2003 中尝试了您的第一个示例,并且可以重现您的 #NAME 错误。
我的解决方案是打开文本文件并在导入向导(第 3 页)中将第 3 列指定为“文本”,同时选择正确的分隔符和文本限定符(第 2 页)。
文本文件无需更改。
【讨论】:
使用 Excel 完全不同 > 导入并双击 .CSV 文件。使用不同的解析器。
根据上面的 cmets,我发现 在“+”或“-”符号前添加空格适用于双击 .CSV 文件的情况。所以我的文件现在包含例如
" +14";" -Foo"
【讨论】:
【讨论】:
查找并替换
+
和
' +
开头的单引号和空格应抵消任何+、- 或=。
【讨论】:
' 保留在字符串列中。
您还需要将 1.5 个数字转换为 1,5 个字符串,因此它们不会更改为日期类型值。
对于 + - = 我使用空间方法“+....” - 不是很好,但对于我的任务来说已经足够了。
【讨论】: