安装扩展
composer require phpoffice/phpspreadsheet
类文件引入扩展
use PhpOffice\PhpSpreadsheet\Reader\Xls;
use PhpOffice\PhpSpreadsheet\Shared\Date;
导入方法
public function import(){
//实例化xls类
$reader = new Xls();
try{
$file = request()->file('fname');
if(!$file){
$this->error = '请上传文件';
return false;
}
//加载上传的xls文件
$spreadsheet = $reader->load($file->getPathname());
//获取当前使用的sheet
$sheet = $spreadsheet->getActiveSheet();
}catch (\PhpOffice\PhpSpreadsheet\Reader\Exception $e){
Log::info('错误信息'.$e->getMessage());
$this->error = $e->getMessage();
return false;
}//文件列数判定
$countColumn = $sheet->getHighestColumn();
//总列数
if ($countColumn != 'Z') {
$this->error = '文件内容不合规';
return false;
}
//文件行数判定
$countRow = $sheet->getHighestRow();
//总行数
$countRow = $countRow - 1;
if ($countRow <= 0) {
$this->error = '文件数据为空';
return false;
}//循环处理
foreach ($sheet->getRowIterator(2) as $k=>$row){
$rowIndex = $row->getRowIndex();
//当前行
//获取所有参数
$aaa = $sheet->getCellByColumnAndRow(1,$rowIndex)->getValue()??'';
$bbb = $sheet->getCellByColumnAndRow(2,$rowIndex)->getValue()??'';
$ccc = $sheet->getCellByColumnAndRow(3,$rowIndex)->getValue()??'';
//...
//...
//...
$this->save(['aaa'=>$aaa,'bbb'=>$bbb,'ccc'=>$ccc]);
}
}
【thinkphp5使用PhpOffice导入excel】这是根据自己的已有项目整理出的文档,总体方案没有问题,如果有细节问题,欢迎指正.
推荐阅读
- 【2022/02/02】thinkphp源码无差别阅读(三十五)
- 【2022/01/31】thinkphp源码无差别阅读(三十四)
- 【2022/01/31】thinkphp源码无差别阅读(三十三)
- 【2022/01/29】thinkphp源码无差别阅读(三十一)
- 【2022/01/27】thinkphp源码无差别阅读(三十)
- 【2022/01/24】thinkphp源码无差别阅读(二十八)
- 【2022/01/23】thinkphp源码无差别阅读(二十七)
- 【2022/01/22】thinkphp源码无差别阅读(二十六)
- 【2022/1/16】thinkphp源码无差别阅读(二十一)
- 【2022/1/15】thinkphp源码无差别阅读(二十)