美文网首页
如何从有规律的 TXT 中抽取信息转换成 Excel

如何从有规律的 TXT 中抽取信息转换成 Excel

作者: 西柚学报表 | 来源:发表于2020-12-28 09:19 被阅读0次

    例题描述

    现有一个文本格式的客户报价单数据item.txt如下图所示:

    横线之前的行是复杂的表头,之后的每一行是一条报价记录,记录之间有空行。图中所示只是一个表头和报价记录区,这样的区域在文本文件中会不断地重复出现。红框所示分别是Unit Price和Exp. Date字段列,中间还有Quotation Number、Customer Code、Customer Name字段列,各列数据之间都是空格。

    现在需要把文本文件中的报价单数据提取出来,存到Excel文件中如下图所示:

    实现步骤

    1、  观察并发现文本中的规律

    我们发现这个文本有这样的规律:

    (1)、少于136个字符的行都没有有效信息,可以跳过

    (2)、所需数据位于每行59列至136列

    (3)、把每行有效信息部分按空格为分隔符拆分,若第1个拆分值是数值类型,则此行是报价记录,否则可跳过。第1个拆分值是Unit Price列,第2个是Quotation Number列,第3个是Customer Code列,最后1个是Contract Expiry Date列,第4个至倒数第2个用空格连接起来是Customer Name列。

    不同文本数据的规律可能不一样,但总是要有规律才能解析。

    2、  运行集算器

    可去润乾官网下载职场版,同时下载一个免费授权就够了,首次运行时会提示加载。

    编写脚本:

    把代码列出来看得清楚点:

    A1创建目标数据集

    A2打开报价单文本文件item.txt,读入文件内容,选项@n表示每一行读成一个字符串

    A3循环处理每一行文本,实施前面找出来的规律

    B3C3如果本行长度小于136,则跳过此行

    B4提取本行数据的第59至136列

    C4对B4中提取出来的数据按空白符进行拆分,选项t表示拆分后去除两端的空白,选项p表示把拆分后的串解析成对应的数据类型

    B5C5如果C4拆分出的第一个值不是数值类型,则跳过此行

    B6将C4拆分出来的第4个值到倒数第二个值用空格连接成串

    B7将C4拆分出的第3个值、B6、C4拆分出的第2个值、第1个值、最后一个值按顺序插入到A1的新记录中

    A8将所有提取的数据保存到Excel文件item.xlsx中

    3、  按F9运行这段程序,可以看到E:/txt2excel/item.xlsx文件已经生成了

    【附件】 txt2excel.zip

    相关文章

      网友评论

          本文标题:如何从有规律的 TXT 中抽取信息转换成 Excel

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