39

我有一个包含以下值的 CSV 文件:

3271.96;274;272;1;1;0;1;0.071690;0;0;0;0;0;0;1.753130;1.75;0;1.75;

但是当我用 Excel 打开文件时,我得到了这个:

3271.96 274 272 1   1   0   1   0.071690    0   0   0   0   0   0   1.753.130   1.75    0   1.75

为什么“1.753130”转换成“1.753.130”?(1.753130 是十进制数)我如何“强制”Excel 理解这些是十进制数?

我使用 Web 应用程序创建 CSV 文件,因此仅修改我的 Excel 配置很困难,因为很多人访问我的网站并将 CSV 文件下载到他们的计算机上。

4

8 回答 8

28

对于使用 Excel 365 等较新版本的 Excel 寻求此问题的用户...正如Excel 教授所写,您可以在设置中激活/恢复“来自文本(旧版)”。

我的首选解决方案

File - Options - Data

Excel 设置 - 来自文本(旧版)


然后你将能够获得旧的导入向导......遗留但在我看来更直观。

链接到旧版导入向导


其他可能性

在链接的 Excel 教授网站上,还显示了其他可能性。使用 Excels 新的导入对话框,如果您有几列数字都在与您的计算机区域设置不同的区域设置中,那么进行导入将更加努力。使用旧向导,您将在一分钟内完成设置。使用新的导入对话框,我还没有找到与旧导入方法一样快的方法。

于 2019-06-27T07:27:05.390 回答
13

这是我使用的答案:

  • 转到 Excel 工作表上的数据选项卡。

  • 点击from Text按钮。

  • 然后选择文本或 csv 文件。

  • 然后会出现导入向导。选择逗号分隔或空格分隔选项。

  • 然后选择分隔符。(如果您不希望在导入小数时出现问题,这会更好)

  • 然后在下一个窗口中将有 General 列类型的 Advanced 选项。单击高级按钮并选择如何分隔小数和千位。

将小数点分隔符更改为“。” 并删除带有空格的千位分隔符。

于 2015-05-26T12:10:02.813 回答
8
  1. 重命名csv.txt
  2. 打开excel
  3. 转到文件->打开并指向您的txt文件
  4. 完成导入它的步骤
  5. 确保;用作分隔符
于 2012-07-10T22:31:07.697 回答
7

截至目前(2020 年 9 月),我设法以稍微不同的方式做到了这一点。我正在使用 Office 365 订阅中的 Excel。

打开 Excel 工作表,转到:

  • 数据(选项卡)> 从文本/CSV(获取和转换数据部分)

选择您的文件(.txt 或 .csv),然后您将有 3 个选项:

  • 文件来源:可能你不必改变这个
  • 分隔符:选择您的分隔符(可能是逗号)
  • 数据类型检测:将其更改为“不检测数据类型”
于 2020-10-01T00:01:52.247 回答
4

我遇到了同样的问题,但仅此解决方案对我不起作用。

在此之前,我必须转到 Office 图标 -> Excel 选项 -> 高级并从“。”设置千位分隔符。到“”(什么都没有)。

于 2013-12-11T04:53:29.223 回答
3

有一种更直接的方法可以将数据从 text/csv 导入 Excel (2017):

  • 在 Excel 中打开一本空白书,然后单击从 text/csv 导入数据。
  • 选择文件。
  • 助手将显示数据的预览,但如果您从带有十进制/科学数字的 csv 导入,则所有数据都将被识别为文本。
  • 在导入之前,单击编辑,您将看到一个带有数据预览的 Excel 电子表格。
  • 如果单击高级编辑器按钮,将出现一个带有 Excel 查询的新窗口。

你会看到类似的东西:

let
    Origin = Csv.Document(File.Contents("C:\Users\JoseEnriqueP\Downloads\evaluation_output.txt"),[Delimiter=",", Columns=8, Encoding=1252, QuoteStyle=QuoteStyle.None]),
    #"Updated type" = Table.TransformColumnTypes(Origin,{{"Column1", Int64.Type}, {"Column2", type text}, {"Column3", type text}, {"Column4", type text}, {"Column5", type text}, {"Column6", type text}})
in
    #"Updated type"

然后,您可以直接写下每一列的类型: - 文本:输入文本 - 整数:Int64.Type - 小数:Double.Type

导入代码如下:

let
    Origin = Csv.Document(File.Contents("C:\Users\JoseEnriqueP\Downloads\evaluation_output.txt"),[Delimiter=",", Columns=8, Encoding=1252, QuoteStyle=QuoteStyle.None]),
    #"Updated type" = Table.TransformColumnTypes(Origin,{{"Column1", Int64.Type}, {"Column2", Int64.Type}, {"Column3", Int64.Type}, {"Column4", type text}, {"Column5", Double.Type}, {"Column6", Double.Type}})
in
    #"Updated type"

通过这样做,您可以将数据直接导入 Excel。

于 2017-08-22T08:53:08.630 回答
0

如果您有更新版本的 Excel(例如 Office 365)并且您不需要更正文件的编码,这对我有用:

  1. 在文件资源管理器中双击打开 .csv 文件
  2. 选择包含十进制数字的列
  3. 使用查找和替换将所有点 (.) 更改为逗号 (,) 符号

这假定不需要其他数据转换(这可能需要通过导入向导),并且 Excel 可以正确识别文件的编码。

如果编码也是一个问题,请在上述步骤之前执行以下操作:

  1. 在记事本++中编辑文件
  2. 打开编码菜单选项卡
  3. 选择所需的值来转换文件的编码

其他一些答案也有效,但为了简单起见,您无法击败 Find and Replace 方法。不管你做什么,这是最重要的一步:长寿和繁荣!

于 2021-04-10T07:37:06.853 回答
0

在 2012 版 Excel 中对我有用的是,当您导入数据时,您可以选择打开“转换数据”框。在右侧面板的此框中,您可以看到“应用步骤”列表。这些是 excel 应用于源文件的步骤。您可以从此列表中删除导致问题的步骤从我的文本文件导入时,我遇到了 excel 忽略小数点的问题,但这解决了问题。

于 2022-01-14T00:09:14.757 回答