美文网首页
excel文件保存为指定分隔符的文本文件

excel文件保存为指定分隔符的文本文件

作者: 异同 | 来源:发表于2021-08-28 17:02 被阅读0次

假设我们当前需求为:将一个xlsx格式的excel文件转换为以|作为分隔符的txt文本文件。
我们通常的方法有:

  1. 将整个excel复制出来,替换\t|符号。但这种方法要求你的文本处理工具需要有正则功能,例如ue、notepad++等。而且像ue这种工具你可能还需要通过ctrl+h转换到16进制,替换16进制的\t符号(即09)为16进制的|符号(即7C)。

097C是table键(\t)、|符号的16进制ascii值,可以在以下网址找到对应数值:http://ascii.911cha.com

  1. 在excel中,通过concat公式或&符号,手动拼接字符串,然后粘贴到txt文件中。

  2. 与方法1类似,在excel中先通过另存为csv的方式导出以逗号作为分隔符的文件,然后再替换逗号为|符号。

上述方法,要么是需要手动拼接,要么是需要手动做分隔的替换工作。当记录数量较少或格式没那么复杂的情况下问题不大,但是当记录数达到几十万上百万以后,替换操作会非常缓慢,并且如果文件中出现超长度的数值或是日期等特殊数据格式时,可能导出的数据还会出现各种各样的问题。
因此我们可以使用以下的方式进行处理。

通用处理方式

首先,我们的处理方式总结起来,就是修改系统中的分隔符配置,这样在excel中导出csv就是我们想要的分隔符了,之后在修改为txt后缀就完成了处理。

假设我们有以下数据:


1.jpg

将其另存为csv文件:


2.jpg

这时以文本方式打开csv文件,会发现实际上这是一个以逗号为分隔符的普通文本文件:


3.jpg

打开控制面板,点击更改日期、时间或数字格式

4.jpg

点击其他设置

5.jpg

在打开的窗口中,将列表分隔符由原来的,修改为|,点击确定/应用

6.jpg 7.jpg

这时回到excel中,同样的我们使用另存为csv的方式进行处理:


8.jpg

再次以文本文件的方式打开csv文件,就会发现分隔符已经变成了|

9.jpg

特殊处理

末尾需要增加一个分隔符

有时候需要我们在末尾添加一个分隔符,例如a|b|c需要我们输出为a|b|c|,这时我们只需要在excel文件的最后填充一列内容为="",即填充一列空白字符:

10.jpg

这时再重复导出csv的步骤,导出的文件中就会多出一列|:

11.jpg

内容中存在超长数字或日期等特殊格式

超长数字或日期格式可能会导致的问题
  • excel中,11位及11位以下的数字将会以普通数字的方式进行展示和输出,而超过11位的数字将会以1.2345E+11这样的科学计数法表示。如果此时我们按以上的方式导出为csv,它的内容将同样被修改为1.2345E+11,这是我们不希望看到的。
  • 日期格式在excel中,是可以用普通日期格式和数字格式两种方式展示的。如果某一列我们使用的是日期格式,此时我们如果对其进行处理,例如将其复制到了另一列,或是使用trimclean等公式进行去除空格、去除不可见符号等操作时,excel会将其转换为默认的数字格式(因为数字格式较为通用,而且也方便转换为其他格式,但是它可能会带来精度丢失)。此时如果我们直接导出为csv,看到的将会是日期的数字表示形式而不是我们想要的yyyy/mm/dd形式。
    12.jpg
13.jpg 14.jpg
处理方式
数字格式的处理

对于数字格式,选中该列,点击数据,在选择分列,一路点击下一步,到步骤3列数据格式选择,选择为文本,并点击完成:

15.jpg
16.jpg

此时我们会发现之前以科学记数法表示的超长数字此时是以文本数字的方式展示的(特点是左上角有一个绿色的小三角):


17.jpg
日期格式的处理

选中日期列,通过分列的方式将其修改为文本格式:


18.jpg

此时原来日期那一列可能没什么特别的表现,但是公式中引用日期列的部分,将会以普通文本的方式进行展示,而不再使用数字的方式展示日期:


19.jpg
导出结果

此时我们使用跟之前一样的方式,导出为csv,并以文本方式打开csv文件,会发现数字部分是以普通数字的方式输出的,日期部分也是以普通日期格式进行输出的:


20.jpg

收尾工作

导出为csv后,将其后缀修改为txt就可以直接拿来使用了。
此外,由于不确定是否有其他文件会用到这个系统分隔符,所以为避免出现问题,再处理完以后建议将分隔符还原为默认的,

21.jpg 22.jpg

相关文章

  • excel文件保存为指定分隔符的文本文件

    假设我们当前需求为:将一个xlsx格式的excel文件转换为以|作为分隔符的txt文本文件。我们通常的方法有: 将...

  • R语言实战_导入数据

    带分隔符的文本文件导入数据 以使用read.table()从带分隔符的文本文件中导入数据。 导入Excel数据 读...

  • Data input and output-R载入文件中的数据

    问题 你想从文件中载入数据。 方案 带分隔符的文本文件 最简单的输入数据的方式就是将其保存为带分隔符(如:制表位或...

  • 2019-01-22 numpy

    numpy 库的学习1 文件导入 genfromtxt()函数:从文本文件加载数据,按指定分隔符分割。genfro...

  • Python字符串和编码注释

    由于Python源码也是一个文本文件,所以当源码包含中文时,在保存源码时,就必须务必指定保存为UTF-8源码,当...

  • 遇见 xlwings, 让你的 Excel 飞起来

    Pandas的read_excel()与to_excel()实际上就是读写有格式的文本文件,操作excel文件和操...

  • Python编码

    由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为U...

  • R语言读取Excel文件

    如果可能的话尽量将Excel文件另保存为CSV文件,方便导入。但是无论保存为CSV还是TXT文件,都只能保存当前活...

  • 02.数据导入&清理

    1.导入csv文件 2.导入文本文件 3.导入EXCEL文件: 用pandas读取Excel文件时,如提示:Mod...

  • hive数据类型和文件格式

    文本文件数据编码 csv 逗号分割值tsv 制表符tab分割值 hive默认是文本文件格式,默认的字段分隔符是^A...

网友评论

      本文标题:excel文件保存为指定分隔符的文本文件

      本文链接:https://www.haomeiwen.com/subject/xnibiltx.html