场景:

朋友有数万条.xlsx的数据,不知道是怎么来的,也不知道什么原因,订单号跟订单描述写入到了同一栏---订单栏;

现在因为业务需要,想把订单号提取出来单独放一栏;

对一下计算机小白来说,一条一条的复制粘贴几万条数据可能需要几天的时间,而且难免会操作失误造成数据不准确。

思路:

那多对于PHP程序员来说,这个逻辑思路非常的简单;

首先把表格导入到数据库里面去,PHP操作mysql绝配;

然后在数据库里面查询订单信息,在每一条订单信息里面匹配订单号;

然后将匹配的订单号插入到对应的列里面;

这样整个流程就结束了;

剩下的交给计算机完成,肯定用不了一个小时的时间。

解决:

创建一个数据表,对应.xlsx里面的表头;

(这里补充一下,如果.xlsx表里面没有唯一标识字段,最好创建一个,为后面PHP操作提供便利)

打开mysql管理终端Navicat

连接之后找到刚刚创建的表;

右键有一个导入向导;

下一步下一步,选择导入的.xlsx文件,开始导入;

然后刷新,数据就导入了。

 

将.xlsx数据导入到mysq数据表l就完成了第二步,噢,第一步是建表;

然后在写程序:

连接上数据库,并选择刚创建的表所在的数据库开始操作;不管是mysql,mysqli还是pdo或者直接操作框架,数据库连接的方式不是难点;

查询订单信息,获得查询结果;简单的select语句,入门就可以操作;

遍历查询的结果,foreach函数;

取出数组里面的每一项,开始使用正则表达式匹配订单号;

匹配之前先要观察订单号的特点;首先都是数字,那么就匹配出数字,然后是以0开头的数字,就再加上一个限定条件开头是0,然后长度都是12个字节,那就再加上一个字节限制;

最后就是这样的 "/0\d{11}/"

来个正则匹配,用这个函数preg_match_all($preg,$str,$match);

匹配的结果就是订单号了;

然后再对应着修改原来的订单号,将提取的订单号插入进去就完成了。