当前位置:首页 > 问答 > 正文

用Excel快速搞定数据库导出TXT,信息提取其实没那么难

(引用来源:知乎专栏“办公趣玩”)

用Excel快速搞定数据库导出TXT,信息提取其实没那么难,很多人一听到“数据库导出”就觉得头大,感觉那是程序员才会搞的事情,看到导出来的TXT文件密密麻麻全是字和符号,更是直接懵了,只要你电脑里有Excel,这事儿就成功了一大半,Excel不光能处理表格,它还是个隐藏的文本处理高手,今天咱们就把它用起来。

你得拿到那个从数据库里导出来的TXT文件,这个文件通常长得不太好看,里面的数据可能都是用一些固定的符号隔开的,比如逗号、竖线|、或者制表符(就是按Tab键产生的那个大空格),也有可能,它什么固定的符号都没有,但每一条记录的长度都是固定的,比如姓名永远占10个字符,年龄永远占3个字符,这种叫固定宽度。

用Excel快速搞定数据库导出TXT,信息提取其实没那么难

拿到TXT文件后,第一步不是直接用Excel打开,那样可能会乱成一锅粥,正确的做法是打开一个空白的Excel文件,然后去到“数据”选项卡,你会找到一个功能叫“获取数据”或者“从文本/CSV获取”(不同版本的Excel名字略有不同),点进去,找到你的那个TXT文件,选中它。

(引用来源:微软Office官方支持页面)

点击后,Excel会弹出一个预览窗口,这叫“文本导入向导”,这个向导会带着你走三步,非常贴心,第一步,它会让你选择文件类型,如果你的数据是用逗号、Tab键这类符号分隔的,就选“分隔符号”;如果是每条信息都对齐得整整齐齐的固定宽度,就选“固定宽度”,绝大多数情况下,数据库导出的都是“分隔符号”这种。

用Excel快速搞定数据库导出TXT,信息提取其实没那么难

点“下一步”,来到关键的第二步,你要告诉Excel,到底是用什么符号把数据分开的,在“分隔符号”区域,把你看到的那个符号勾上,比如勾选“逗号”,这时候,预览窗口里会立刻出现分列的竖线,把数据隔成一条一条的,你一眼就能看出来分得对不对,如果分对了,就继续“下一步”。

第三步,你可以为每一列设置数据格式,一般保持“常规”就行,Excel会自动判断是数字还是文本,但如果有些数字串,比如身份证号、电话号码,你不想让它变成科学计数法,就要提前选中那列,设置为“文本”格式,都设置好后,点击“完成”,Excel会问你把数据放在哪里,通常选“现有工作表”的A1单元格就行。

就这样,刚才还乱七八糟的TXT文本,瞬间就变成了一个规规矩矩的Excel表格,姓名、电话、地址什么的都整整齐齐地待在各自的列里,你想怎么处理就怎么处理了,排序、筛选、查找替换,这都是Excel的看家本领。

用Excel快速搞定数据库导出TXT,信息提取其实没那么难

(引用来源:个人实践经验总结)

但有时候情况会复杂一点,导出的文本里,可能某个字段本身也包含了分隔符,举个例子,地址信息可能是“北京市,朝阳区,某某路”,而你的分隔符正好是逗号,如果直接分列,一个地址就会被错误地分成三列,有经验的数据导出,通常会在这个字段两边加上一个文本识别符,最常见的就是双引号,变成“北京市,朝阳区,某某路”,在文本导入向导的第二步,你就要注意下方有一个“文本识别符”的选项,把它设为双引号,这样Excel就会聪明地把引号内的内容当作一个整体,不会把里面的逗号当成分隔符。

还有一种情况,就是导出的TXT文件非常大,用上面的方法导入Excel可能会卡顿,因为Excel处理海量数据的能力是有限的,这时候,你可以考虑不用一次性导入,而是使用Excel的Power Query功能(在“数据”选项卡下的“获取和转换数据”组里),Power Query能更高效地处理大文本文件,并且可以设置好步骤,下次你拿到格式一模一样的新TXT文件,只需要在Power Query里右键点击“刷新”一下,所有数据就自动处理好了,特别适合每周、每月都要做的重复性工作。

信息提取的核心,其实就是“分家”,把混在一起的信息按照某种规则分开,让它们各回各的列,Excel的文本分列功能就是干这个的利器,分好之后,你甚至可以用Excel的函数,比如LEFT、RIGHT、MID、FIND这些,对分出来的某一列数据进行更精细的提取,比如从完整地址里单独抽出城市名,但这属于进阶玩法了,对于刚上手的你来说,能熟练地把TXT变成表格,就已经解决了90%的问题。

别再对着数据库导出的TXT文件发愁了,记住这个流程:打开Excel -> 数据选项卡 -> 从文本/CSV获取 -> 跟着文本导入向导一步步走 -> 搞定,多试两次,你就会发现,这事儿真的没那么神秘,熟练之后一分钟就能搞定。