利用php将xls表格数据以原生方式快速导入mysql


这里以联通的市区编码表为例,如图:


鼎云博客


第一步,我们把xls表格中的首行作为mysql表中的字段,为了方便查看这里转换成了小写,表名随意,主键id可加可不加,看自己需求


鼎云博客


第二步,将xls表格中除了首行以外的数据全选复制保存到txt文件里,然后用php读取并转为sql,批量插入到mysql即可


$file = @fopen($txtfile ='/www/wwwroot/1.xls','r');

if(!$file){

    return 'file open fail';

}else{

    $i = 0;

    $lists = [];

    while (!feof($file)){

        $data = mb_convert_encoding(fgets($file),"UTF-8","GBK,ASCII,ANSI,UTF-8");

        $c=array_combine(['province_code','province_name', 'city_code', 'city_name', 'district_code', 'district_name', 'ess_province_code', 'ess_city_code'], explode("    ",$data));  //把数据映射到每个字段,这里空格替换长度需要改成你实际长度,否则获取不到数据

        $d = array_map(function ($v){

            return trim($v);

        }, $c);

        $lists[$i] = $d;

        $i++ ;

    }

    fclose($file);

}

$lists = array_filter($lists);

$ids = \PhalApi\DI()->notorm->fa_un_area->insert_multi($lists); //这里替换成你的插入方法


第三步,插入完成,来看看效果,完美

鼎云博客



鼎云博客
  • 最新评论
  • 总共0条评论