【问题标题】:Bypass excel csv formula conversion on fields starting with + or -绕过以 + 或 - 开头的字段的 excel csv 公式转换
【发布时间】:2011-05-25 05:26:52
【问题描述】:

我有一个包含内容的 csv 文件:

"x","y","-z"

当我导入它时,我得到:

如何绕过此转换?

更新

如果你尝试:

   "x","y",="-z,a"

“,a”未导入。

如果你在前面放一个空格:

   "x","y",=" -z"

   "x","y"," -z"

它会正常工作

【问题讨论】:

  • 最佳答案是 MikeD

标签: excel csv


【解决方案1】:

在值前面加上等号

="x",="y",="-z"

【讨论】:

  • 有没有办法将它作为文本导入而不在前面放“'”?
  • 如果不使用 CSV 以外的格式,我不这么认为。根据 CSV 中每一列中的文本,Excel 的行为会有所不同。似乎如果您提供一个字符(例如 x),它将显示为一个字符,但是如果您在一个字符前面加上一个数学运算符(即 -)Excel 会尝试将一个单元格引用为具有所提供名称的数字(在此案例 z)。
  • 有趣的是,如果你有 "x","y",="-z,a" 那么 ",a" 甚至不会被导入!
  • 其实我认为 Excel 正在关闭 - 制作公式,这是 Excel 中字符串常量的问题
【解决方案2】:

您的问题是,通过使用 CSV 扩展名,您正在强制 excel 使用其非常严格的 CSV 约定来解释文件,这通常会违背您尝试执行的任何操作,除非最初创建了 CSV 文件通过 Excel。导入此 CSV 文件最简单、最可靠的方法是将其重命名为 TXT 文件,然后使用 excel 中的导入功能以您想要的方式强制转换列。

【讨论】:

  • 因此,这是一项手动工作,无法自动导入这些 csv 文件?
  • 一点也不,您使用的任何脚本语言肯定有一种方法来操作文件系统。你的问题没有用任何编程语言标记,所以我假设你是手动做的。如果您在 excel 中使用 VBA,有一个简单的命令 (FileCopy srcFile, srcFile & ".txt") 将使用新扩展名制作文件的临时副本。打开后就可以用Kill srcFile & ".txt"去掉它
【解决方案3】:

我在 Excel 2003 中尝试了您的第一个示例,并且可以重现您的 #NAME 错误。

我的解决方案是打开文本文件并在导入向导(第 3 页)中将第 3 列指定为“文本”,同时选择正确的分隔符和文本限定符(第 2 页)。

文本文件无需更改。

【讨论】:

  • 比上述任何一个都好得多的答案
【解决方案4】:

使用 Excel 完全不同 > 导入并双击 .CSV 文件。使用不同的解析器。

根据上面的 cmets,我发现 在“+”或“-”符号前添加空格适用于双击 .CSV 文件的情况。所以我的文件现在包含例如

" +14";" -Foo"

【讨论】:

  • 这应该是公认的答案。经过数小时搜索引号、撇号等,我需要一个空格。谢谢!
【解决方案5】:

我希望在转换过程中直接解决此类问题,通过给出正确的列格式,例如:使用 Text 格式作为应该包含操作符号的列:

查看此详细信息:http://ask.osify.com/qa/854

【讨论】:

    【解决方案6】:

    查找并替换 +' +

    开头的单引号和空格应抵消任何+-=

    【讨论】:

    • 它对我不起作用:' 保留在字符串列中。
    【解决方案7】:

    您还需要将 1.5 个数字转换为 1,5 个字符串,因此它们不会更改为日期类型值。

    对于 + - = 我使用空间方法“+....” - 不是很好,但对于我的任务来说已经足够了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-31
      • 2017-03-07
      • 2017-04-28
      • 2021-07-29
      • 1970-01-01
      • 1970-01-01
      • 2020-09-04
      • 1970-01-01
      相关资源
      最近更新 更多