数据导出已经有了,怎么能没有数据导入呢,一样使用TP5框架,首先须要下载phpexcel.zip,放到第三方类库目录vendor目录下,而后有一个页面能够让你选择要导入的Excel文件,而后点击导入按钮调用接口:php
个人模板内的数据以下图:数据库
后端接口代码以下:json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
public
function
uplExcel(Request
$request
)
{
if
(!
empty
(
$_FILES
[
'excel'
][
'name'
])) {
$fileName
=
$_FILES
[
'excel'
][
'name'
];
//获得文件全名
$dotArray
=
explode
(
'.'
,
$fileName
);
//把文件名安.区分,拆分红数组
$type
=
end
(
$dotArray
);<br>
if
(
$type
!=
"xls"
&&
$type
!=
"xlsx"
) {
$ret
[
'res'
] =
"0"
;
$ret
[
'msg'
] =
"不是Excel文件,请从新上传!"
;
return
json_encode(
$ret
);
}
//取数组最后一个元素,获得文件类型
$uploaddir
=
"../uploads2/"
.
date
(
"Y-m-d"
) .
'/'
;
//设置文件保存目录 注意包含
if
(!
file_exists
(
$uploaddir
)) {
mkdir
(
$uploaddir
, 0777, true);
}
$path
=
$uploaddir
. md5(uniqid(rand())) .
'.'
.
$type
;
//产生随机文件名
//$path = "images/".$fileName; //客户端上传的文件名;
//下面必须是tmp_name 由于是从临时文件夹中移动
move_uploaded_file(
$_FILES
[
'excel'
][
'tmp_name'
],
$path
);
//从服务器临时文件拷贝到相应的文件夹下
$file_path
=
$path
;
if
(!
file_exists
(
$path
)) {
$ret
[
'res'
] =
"0"
;
$ret
[
'msg'
] =
"上传文件丢失!"
.
$_FILES
[
'excel'
][
'error'
];
return
json_encode(
$ret
);
}
//文件的扩展名
$ext
=
strtolower
(
pathinfo
(
$path
, PATHINFO_EXTENSION));
if
(
$ext
==
'xlsx'
) {
$objReader
= \PHPExcel_IOFactory::createReader(
'Excel2007'
);
$objPHPExcel
=
$objReader
->load(
$file_path
,
'utf-8'
);
}
elseif
(
$ext
==
'xls'
) {
$objReader
= \PHPExcel_IOFactory::createReader(
'Excel5'
);
$objPHPExcel
=
$objReader
->load(
$file_path
,
'utf-8'
);
}
$sheet
=
$objPHPExcel
->getSheet(0);
$highestRow
=
$sheet
->getHighestRow();
// 取得总行数
$highestColumn
=
$sheet
->getHighestColumn();
// 取得总列数
$ar
=
array
();
$i
= 0;
$importRows
= 0;
for
(
$j
= 2;
$j
<=
$highestRow
;
$j
++) {
$importRows
++;<br>
$realName
= (string)
$objPHPExcel
->getActiveSheet()->getCell(
"A$j"
)->getValue();
//须要导入的realName
$phone
= (string)
$objPHPExcel
->getActiveSheet()->getCell(
"B$j"
)->getValue();
//须要导入的phone
$company
= (string)
$objPHPExcel
->getActiveSheet()->getCell(
"C$j"
)->getValue();
//须要导入的company
$job
= (string)
$objPHPExcel
->getActiveSheet()->getCell(
"D$j"
)->getValue();
//须要导入的job
$email
= (string)
$objPHPExcel
->getActiveSheet()->getCell(
"E$j"
)->getValue();
//须要导入的email
$ret
[
'mdata'
] =
$this
->addMemb(
$phone
,
$realName
,
$company
,
$job
,
$email
);
//这里就是个人数据库添加操做定义的一个方法啦,对应替换为本身的
if
(
$ret
[
'mdata'
] && !
is_Bool
(
$ret
[
'mdata'
])) {
$ar
[
$i
] =
$ret
[
'mdata'
];
$i
++;
}
}
if
(
$i
> 0) {
$ret
[
'res'
] =
"0"
;
$ret
[
'errNum'
] =
$i
;
$ret
[
'allNum'
] =
$importRows
;
$ret
[
'sucNum'
] =
$importRows
-
$i
;
$ret
[
'mdata'
] =
$ar
;
$ret
[
'msg'
] =
"导入完毕!"
;
return
json_encode(
$ret
);
}
$ret
[
'res'
] =
"1"
;
$ret
[
'allNum'
] =
$importRows
;
$ret
[
'errNum'
] = 0;
$ret
[
'sucNum'
] =
$importRows
;
$ret
[
'mdata'
] =
"导入成功!"
;
return
json_encode(
$ret
);
}
else
{
$ret
[
'res'
] =
"0"
;
$ret
[
'msg'
] =
"上传文件失败!"
;
return
json_encode(
$ret
);
}
}
|