安装扩展
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]);
}
}
这是根据自己的已有项目整理出的文档,总体方案没有问题,如果有细节问题,欢迎指正.