ZXCDFGTYU
V2EX  ›  PHP

有没有什么可以用 PHP 实现的批量数据导入方法

  •  
  •   ZXCDFGTYU · May 22, 2017 · 4543 views
    This topic created in 3453 days ago, the information mentioned may be changed or developed.

    现在遇到一个需求,要求批量导入员工数据。

    其结构为: 员工照片,员工姓名,员工职位,所属公司

    并且 一个员工只允许一张员工照片,一个员工属于一个公司,一个员工只允许一个职位。

    目标数据量有 200+,如果全部手工单条录入就太麻烦了。。现在需要使用 php 实现此数据的批量导入到数据库并在前台展示。

    之前试过使用 PHPExcel 读取 xlsx 表格文件实现,但是在 xlsx 中图片不属于任何一个单元格,无法确定员工照片和员工的对应关系。。

    希望各位能给帮忙给个思路,万分感谢!

    17 replies  •  2017-05-22 17:34:40 +08:00
    onlyhot
    onlyhot
    May 22, 2017 via iPhone
    1
    每条数据对应图片名称或者图片 id
    lsido
    lsido
    May 22, 2017 via Android
    2
    xlsx 数据发一部分,图片在什么位置
    ZXCDFGTYU
    ZXCDFGTYU
    OP
    May 22, 2017
    3
    @lsido 照片通过 Excel2013 的 插入选项卡-图片插入
    ![xlsx 截图]( https://ooo.0o0.ooo/2017/05/22/592271066a6f6.png)
    ZXCDFGTYU
    ZXCDFGTYU
    OP
    May 22, 2017
    4
    @onlyhot 这玩意是给运营部门用的,想做的尽量简单点
    laobaozi
    laobaozi
    May 22, 2017
    5
    信息和图片分开导
    信息直接 insert into 注意上传文件 id 和路径
    图片直接移动到对应的目录就 OK
    yumijie
    yumijie
    May 22, 2017
    6
    csv 可以直接导入
    ZXCDFGTYU
    ZXCDFGTYU
    OP
    May 22, 2017
    7
    @yumijie 貌似 CSV 不支持图片?
    yumijie
    yumijie
    May 22, 2017
    8
    @ZXCDFGTYU 图片也导入到 mysql?
    rxzxf1993
    rxzxf1993
    May 22, 2017
    9
    导入的时候 把图片先传到服务器 或者某平台 然后 存表
    JKeita
    JKeita
    May 22, 2017
    10
    看看读取图片是不是顺序读取,如果是的话,处理的时候,分成两个数组,一个数组存放基础信息,一个数组存放图片上传后的路径,因为是有序的,所有数组的数字索引是相对应的
    ZXCDFGTYU
    ZXCDFGTYU
    OP
    May 22, 2017
    11
    @yumijie 图片不进 mysql,路径进去,但是图片的文件名上传以后会变,而且是随机定长字符串值
    ZXCDFGTYU
    ZXCDFGTYU
    OP
    May 22, 2017
    12
    刚才关于这个问题请示了一下领导,领导说做毛批量导入,一个一个添加就行 2333,此处愉快结帖,再次感谢各位提出的意见和想法,万分感谢!
    reus
    reus
    May 22, 2017
    13
    才几百条,一分钟一条够不够?一天可以输入多少条?
    fuxkcsdn
    fuxkcsdn
    May 22, 2017 via iPhone
    14
    @ZXCDFGTYU 本来就是这样最快,才 200+数据,而且看着不像经常需要用的功能,随便找 1,2 个文员,顶多半天搞定
    Mitt
    Mitt
    May 22, 2017
    15
    你是愿意花 2 个小时手工录入还是愿意花 3 个小时写个自动导入, 我选后者,前者不是程序员该干的活
    alexzhou
    alexzhou
    May 22, 2017
    16
    随手 google
    http://www.walkswithme.net/reading-images-from-excel-sheet-using-phpexcel

    ```php

    $xlsFile = 'sample.xlsx';
    require_once 'PHPExcel/Reader/Excel2007.php';
    $objReader = new PHPExcel_Reader_Excel2007();
    //$objReader->setReadDataOnly(true);
    $data = $objReader->load($xlsFile);
    $objWorksheet = $data->getActiveSheet();
    foreach ($objWorksheet->getDrawingCollection() as $drawing) {
    //for XLSX format
    $string = $drawing->getCoordinates();
    $coordinate = PHPExcel_Cell::coordinateFromString($string);
    if ($drawing instanceof PHPExcel_Worksheet_Drawing){
    $filename = $drawing->getPath();
    $drawing->getDescription();
    copy($filename, 'uploads/' . $drawing->getDescription());
    }}


    ````
    alexzhou
    alexzhou
    May 22, 2017
    17
    其实你把 xlsx 文件拓展名改成 .zip 解压后你会发现 通过读取 xml 会获得对应的图片 ,而图片也在一个特定目录里面放着
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2756 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 00:30 · PVG 08:30 · LAX 16:30 · JFK 19:30
    ♥ Do have faith in what you're doing.