【问题标题】:How to save excel columns with long numbers into csv?如何将长数字的excel列保存到csv中?
【发布时间】:2014-05-04 00:45:22
【问题描述】:

有趣的是,当我想保存具有如下长数字的 Excel 列时,生成的 csv 包含转换为科学计数法的数字,这是不可用的。我希望它们保存为文本。有什么诀窍吗?

28160010390002003505456159  
12160010390002003505456156  
39160010390002003505456155  
39160010390002003505456155  

【问题讨论】:

  • 将列格式化为文本
  • 在值前加上'
  • @TimWilliams 你的回复对我有帮助,谢谢

标签: excel csv


【解决方案1】:

为了在 Excel 中包含这些长(>15 位)数字,它们已经被格式化为文本。我怀疑 .csv 文件也将它们显示为长数字(如果您使用记事本打开 csv 文件),但是当您在 Excel 中打开 csv 文件时,您会看到它们被截断并转换为科学记数法。

如果是这种情况,您需要做的是导入 csv 文件。当您这样做时,文本到列向导将打开,并允许您将该列格式化为文本。 Import 的位置在不同的版本中是不同的。在 Excel 2007 中,它位于数据功能区上,获取外部数据/来自文本。

【讨论】:

  • 谢谢!现在工作正常。不知道“来自文本”按钮。
  • 很高兴为您提供帮助。出于某种原因,即使数字用双引号括起来,Excel(使用文件打开方法)也总是会尝试将值解释为数字。 Import 方法是如何控制它的。
  • 他说保存一个 CSV。这谈到了进口。没有。
  • @buildmaestro 没错。答案解决了遇到的真正问题,而不是您认为的问题。这就是它被接受的原因。
【解决方案2】:

使用 openoffice,您可以毫无问题地保存为 csv 格式。

【讨论】:

    【解决方案3】:

    在数字末尾附加一个 TAB 字符(ASCII 9)。

    【讨论】:

    • 这是我为这个问题找到的最佳解决方案。
    • 如果CSV是从SQL生成的,你可以像SELECT CONCAT(field, "\t") AS "field" FROM table那样做
    • 只是挑剔,当用户复制单元格时,他们会看到 TAB 字符。
    • 只是挑剔,当用户复制单元格时,他们会看到 TAB 字符。
    • 你能解释一下原因吗?
    【解决方案4】:

    把数字作为一个函数,如下所示: ="123456789123456789"

    【讨论】:

    • 我想这是正确视觉表示的最佳解决方案,但如果您要从 csv 文件中解析数据,它可能会让您有些头疼。
    【解决方案5】:

    这是一个老问题,但由于目前它仍然是谷歌搜索该主题的最高结果,我认为该线程应该保持最新。 Hussein mahyoub 为这个问题提供了唯一真正的答案,但尚未获得支持。

    告诉我们在您的号码后添加制表符的答案会在 Excel 中为您提供一个带有制表符的文本字符串。它在视觉上看起来是正确的,但是在电子表格中却是不正确的。如果打算将excel中的数据用作excel数据并使用公式等,则可能会导致问题。有趣的是,如果您将制表符放在文本之前,它会显示在文本之后的数据中。

    答案告诉我们在 excel 文件中的文本获得 ' 之前插入一个 '。它在视觉上是数据的不正确表示。

    拥有 openoffice 优点的答案只是一个邪恶的巨魔,甚至不尝试回答问题。

    解释如何导入格式不正确的 CSV 的答案是很好的信息,但是,离题了。

    问题的直接答案是

    converted to text,largest number
    ="123456789012",12345678901
    

    【讨论】:

    • 我发现这个问题试图解决我自己的问题。问题的具体内容是模棱两可的。由于这是stackoverflow,我的假设是问题不是最终用户试图弄清楚如何使用excel来输出数据的问题。作为开发人员,我需要手动创建文件。如果您以程序员的身份生成文件,这是我发现完成此任务的最佳方法。根据我对问题的解释,这些答案中的大多数都是题外话。
    • 这是 IMO 标题中问题的正确答案。
    【解决方案6】:

    使用文本函数将数字转换为文本。

    Text(number,"0")
    

    【讨论】:

    【解决方案7】:

    如果正如最初的问题所暗示的那样,您实际上是:

    1. 已经在使用 Excel 中的数据,并且
    2. 想要保存为 CSV 格式而不丢失超长数字中的数字,

    然后,在对 CSV 格式执行“另存为”之前,尝试使用自定义格式格式化列,然后在模式框中输入 #。这将强制 Excel 将其视为一个数字,无论数字有多长,当您实际将其保存为 CSV 时,无需尝试对其进行其他操作,例如 4.52364E+14

    至少,目前在 Excel 365 中对我来说是这样的。

    如果您尝试从 CSV 将数据导入 Excel,那么使用数据导入向导的答案可能是最安全的选择。

    【讨论】:

    • 也适用于 Excel 2013。
    【解决方案8】:

    不要在 Excel 中使用“导出到 csv”功能。
    您可以轻松地将该列格式化为 Excel 中的数字,然后使用“另存为”和 csv 和“是”来确认您要在 csv 中保留该格式。
    那是为我工作

    【讨论】:

      猜你喜欢
      • 2016-03-11
      • 2021-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-20
      • 1970-01-01
      • 2016-08-20
      • 2022-01-05
      相关资源
      最近更新 更多