php excel导入mysql 源码_PHP Excel导入数据到MySQL数据库

本文介绍如何在PHP中使用TP5框架将Excel数据导入到MySQL数据库。首先,将phpexcel库放入vendor目录,接着创建一个页面让用户选择Excel文件进行上传。后端接口接收到文件后,检查文件类型并将其保存到指定目录。通过PHPExcel读取Excel内容,逐行获取数据,并调用数据库添加方法将数据插入到MySQL。最后返回导入结果。
摘要由CSDN通过智能技术生成

数据导出已经有了,怎么能没有数据导入呢,同样使用TP5框架,首先需要下载

icon_rar.gifphpexcel.zip,放到第三方类库目录vendor目录下,然后有一个页面可以让你选择要导入的Excel文件,然后点击导入按钮调用接口:

985467ef77d7c2aad9e687fc4fcdd9c5.png

我的模板内的数据如下图:

253201eb00ba3c558312cfb105a69fa9.png

后端接口代码如下:

public function uplExcel(Request $request)

{

if (!empty($_FILES['excel']['name'])) {

$fileName = $_FILES['excel']['name']; //得到文件全名

$dotArray = explode('.', $fileName); //把文件名安.区分,拆分成数组

$type = end($dotArray);

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++;

$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);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值