php excel批量上传,Thinkphp5+PHPExcel实现批量上传表格数据功能

本文介绍了如何在Thinkphp5框架中利用PHPExcel库批量导入Excel数据并存储到数据库。首先,将PHPExcel库放入指定目录,然后通过前端上传文件,后台处理文件并读取数据,逐行插入数据库。在导入过程中,代码会显示每行数据的导入状态。此教程为开发者提供了完整的代码示例,有助于快速实现Excel数据的批量导入功能。
摘要由CSDN通过智能技术生成

1.首先要下载PHPExcel放到vendor文件夹下,我的路径是:项目/vendor/PHPExcel/,把下载的PHPExcel文件放在这里

1dab56b53d676517b7221fb347f5cb8e.png

2.前端代码

批量导入数据

3.后台代码

/**

* 导入表格数据

* 先把文件上传到服务器,然后再读取数据存到数据库

*/

public function importExcel(){

header("content-type:text/html;charset=utf-8");

//上传excel文件

$file = request()->file('myfile');

//移到/public/uploads/excel/下

$info = $file->move(ROOT_PATH.'public'.DS.'uploads'.DS.'excel');

//上传文件成功

if ($info) {

//引入PHPExcel类

vendor('PHPExcel.PHPExcel.Reader.Excel5');

//获取上传后的文件名

$fileName = $info->getSaveName();

//文件路径

$filePath = 'public/uploads/excel/'.$fileName;

//实例化PHPExcel类

$PHPReader = new \PHPExcel_Reader_Excel5();

//读取excel文件

$objPHPExcel = $PHPReader->load($filePath);

//读取excel文件中的第一个工作表

$sheet = $objPHPExcel->getSheet(0);

$allRow = $sheet->getHighestRow(); //取得总行数

//$allColumn = $sheet->getHighestColumn(); //取得总列数

//从第二行开始插入,第一行是列名

for ($j=2; $j <= $allRow; $j++) {

$data['name'] = $objPHPExcel->getActiveSheet()->getCell("A".$j)->getValue();

$data['tel'] = $objPHPExcel->getActiveSheet()->getCell("B".$j)->getValue();

$data['addr'] = $objPHPExcel->getActiveSheet()->getCell("C".$j)->getValue();

$last_id = Db::table('users')->insertGetId($data);//保存数据,并返回主键id

if ($last_id) {

echo "第".$j."行导入成功,users表第:".$last_id."条!
";

}else{

echo "第".$j."行导入失败!
";

}

}

}else{

echo "上传文件失败!";

}

}

输出结果:

11c9ea56ada3d20d1c7e402f9412344f.png

注意:

引入第三方类库使用vendor();是按照命名空间的形式。底层代码会把“ . ”自动替换成" / ",所以使用“ / ”时要用“ . ”代替;

以上代码可以直接复制使用,但是数据库相关信息要改成你自己的!

总结

以上所述是小编给大家介绍的Thinkphp5+PHPExcel实现批量上传表格数据功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值