逆的这个问题。
作为编程工作的一部分,我经常从外部来源下载 CSV。我喜欢在 Excel 中检查它们的数据,因为说实话,Excel 是处理这类事情的理想工具。
除了一种行为:Excel 试图智胜 CSV 中的数据,因此,如果某些内容看起来像数字(例如,许多 ISBN/EAN 代码),Excel 会将其视为数字。如果这个数字真的很大(就像几乎所有的 ISBN/EAN 代码一样),Excel 会将数字转换为科学计数法。最后,如果数字不是特别大,对于大多数这些数据格式,这表明 Excel 已决定我的数字不应该有前导零。
那么... 有没有办法打开 CSV(如果可能的话通过双击,但我愿意在这里妥协)以便我可以让 Excel 2007 将所有列视为文本?
答案1
可以,但需要几个手动步骤。这些步骤来自 Excel 2003,但我认为 2007 中的向导类似:
- 将文件重命名为 TXT。不要双击它。
- 打开 Excel
- 单击文件、打开
- 找到并双击文本文件
- 它应该打开“文本导入向导”
- 第一步,选择“分隔”
- 第二步,取消勾选“tab”,勾选“逗号”
- 第三步,滚动到最后一列,按住 Shift 键并单击以选择所有列,然后单击“文本”作为格式。
- 忽略无处不在的烦人的“数字存储为文本”警告
经过一些练习,就会很快。
答案2
似乎没有办法阻止大数字的转换,因此解决这个问题的方法是将字段的属性更改为文本,然后再在 excel 中打开它。例如,如果您正在创建一个 COGNOS 报告,其中有一个带有数字的字段,如供应商编号,该字段最多可以有 15 个字符或更多。在 COGNOS 中,在运行报告之前将该字段的属性更改为文本。因此,当您将报告作为 Excel 输出运行时,excel 会将其视为文本而不是数字。您输入的任何数字不是在计算中使用并更改为文本是相当安全的。
答案3
我从网上银行导出。我选择保存文件(而不是打开它)。它以 .csv 格式保存。然后我打开一个 excel 表,在“获取和转换数据”功能区中的“数据”选项卡中,单击“来自文本/CSV”,选择(双击)我保存的 .csv 文件。
它将以文件来源、分隔符和数据类型检测作为标题打开。除数据类型检测外,其他所有内容保持不变 - 选择不检测数据类型。然后单击下面的加载。数据将正确加载到您的 Excel 表中,所有数字均正确。
希望这能有所帮助。解决这个问题是一项艰巨的任务。
答案4
我注意到,您可以将列的格式更改为“数字”,并将小数位设置为 0。这样,导入文件后,Excel 中将显示完整值。这里的关键部分是,每次打开 CSV 时都必须执行此操作,以保留有效数字并防止舍入。舍入数字的问题似乎只有在您保存 CSV 文件然后再调整数字格式时才会发生。我已经学会保留备份,以备不时之需,因为我忘记了这个愚蠢的“功能”。我还没能找到彻底关闭此功能的方法。