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

2021-08-28  本文已影响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

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

超长数字或日期格式可能会导致的问题
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
上一篇下一篇

猜你喜欢

热点阅读