如何使用 PHPExcel 导入 excel 文件到数据库

查看是否安装 composer

Composer 简介,安装

composer

进入项目根目录,composer.json 所在目录

cd ../../lmb

使用 composer 安装 PHPExcel

composer require phpoffice/phpexcel

安装需要花点时间,上个厕所再来吧!

打开 /lmb/vender 目录会发现新增了一个 phpoffice 文件夹,里面就是上面安装的 PHPExcel

如何使用 PHPExcel 导入 excel 文件并保存到数据库

前台部分样例:

<form  id="submitForm" method="post" action="import.php" enctype="multipart/form-data">
    <input id="importdata" type="file" class="form-control" name="importdata">
    <button class="btn btn-primary" type="submit">确认提交</button>
</form>

后台php部分: (无需引入 PHPExcel,thinkphp 已自动加载)

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

#保存文件到/public/uploads/ 目录下
$info = $file->move(ROOT_PATH . 'public' . DS . 'upload');
if($info){
#文件路径
$filename =  ROOT_PATH . 'public' . DS . '/upload' . '/' . date('Ymd') . '/' . $info->getFilename();
#文件后缀
$extension = strtolower(pathinfo($filename, PATHINFO_EXTENSION));

#获取文件数据
if($extension == 'xlsx') {
    $objReader =\PHPExcel_IOFactory::createReader('Excel2007');
    $objPHPExcel = $objReader->load($filename, $encode = 'utf-8');
}else if($extension == 'xls'){
    $objReader =\PHPExcel_IOFactory::createReader('Excel5');
    $objPHPExcel = $objReader->load($filename, $encode = 'utf-8');
}
#转换为数组格式
$excel_array = $objPHPExcel->getsheet(0)->toArray();  
#去除第一个数组(标题);            
array_shift($excel_array);  

$data = [];
foreach ($excel_array as $key=>$val) {
    $data[$key]['name'] = $val[0];
    $data[$key]['mobile'] = $val[1];
}

#批入数据
Db::table('table')->insertAll($data);

小提示

如有侵权请邮件通知