现在遇到一个需求,要求批量导入员工数据。
其结构为: 员工照片,员工姓名,员工职位,所属公司
并且 一个员工只允许一张员工照片,一个员工属于一个公司,一个员工只允许一个职位。
目标数据量有 200+,如果全部手工单条录入就太麻烦了。。现在需要使用 php 实现此数据的批量导入到数据库并在前台展示。
之前试过使用 PHPExcel 读取 xlsx 表格文件实现,但是在 xlsx 中图片不属于任何一个单元格,无法确定员工照片和员工的对应关系。。
希望各位能给帮忙给个思路,万分感谢!
1
onlyhot 2017-05-22 12:10:40 +08:00 via iPhone
每条数据对应图片名称或者图片 id
|
2
lsido 2017-05-22 12:45:40 +08:00 via Android
xlsx 数据发一部分,图片在什么位置
|
3
ZXCDFGTYU OP @lsido 照片通过 Excel2013 的 插入选项卡-图片插入
![xlsx 截图]( https://ooo.0o0.ooo/2017/05/22/592271066a6f6.png) |
5
laobaozi 2017-05-22 13:25:03 +08:00
信息和图片分开导
信息直接 insert into 注意上传文件 id 和路径 图片直接移动到对应的目录就 OK |
6
yumijie 2017-05-22 13:33:36 +08:00
csv 可以直接导入
|
9
rxzxf1993 2017-05-22 15:06:38 +08:00
导入的时候 把图片先传到服务器 或者某平台 然后 存表
|
10
JKeita 2017-05-22 15:37:14 +08:00
看看读取图片是不是顺序读取,如果是的话,处理的时候,分成两个数组,一个数组存放基础信息,一个数组存放图片上传后的路径,因为是有序的,所有数组的数字索引是相对应的
|
12
ZXCDFGTYU OP 刚才关于这个问题请示了一下领导,领导说做毛批量导入,一个一个添加就行 2333,此处愉快结帖,再次感谢各位提出的意见和想法,万分感谢!
|
13
reus 2017-05-22 16:27:18 +08:00
才几百条,一分钟一条够不够?一天可以输入多少条?
|
14
fuxkcsdn 2017-05-22 16:29:41 +08:00 via iPhone
@ZXCDFGTYU 本来就是这样最快,才 200+数据,而且看着不像经常需要用的功能,随便找 1,2 个文员,顶多半天搞定
|
15
Mitt 2017-05-22 17:24:18 +08:00
你是愿意花 2 个小时手工录入还是愿意花 3 个小时写个自动导入, 我选后者,前者不是程序员该干的活
|
16
alexzhou 2017-05-22 17:30:45 +08:00
随手 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()); }} ```` |
17
alexzhou 2017-05-22 17:34:40 +08:00
其实你把 xlsx 文件拓展名改成 .zip 解压后你会发现 通过读取 xml 会获得对应的图片 ,而图片也在一个特定目录里面放着
|