首页 > PHP
TP6导入excel表格
来源:TP课堂 时间:2022-10-19 点击:430

首先composer下载:

composer require phpoffice/phpspreadsheet


在控制器中引用:

use PhpOffice\PhpSpreadsheet\IOFactory;


开始使用,这里是两个字段:

public function importData()
    {
        // 获取表单上传文件
        $file[] = request()->file('file');
        $savename = \think\facade\Filesystem::putFile('file', $file[0]);
        $fileExtendName = substr(strrchr($savename, '.'), 1);
        // 有Xls和Xlsx格式两种
        if ($fileExtendName == 'xlsx') {
            $objReader = IOFactory::createReader('Xlsx');
        } else {
            $objReader = IOFactory::createReader('Xls');
        }
        $objReader->setReadDataOnly(TRUE);
        // 读取文件,tp6默认上传的文件,在runtime的相应目录下,可根据实际情况自己更改
 
        $objPHPExcel = $objReader->load(root_path() . '/runtime/storage/' . $savename);
        $sheet = $objPHPExcel->getSheet(0);   //excel中的第一张sheet
 
        $highestRow = $sheet->getHighestRow();       // 取得总行数
        $highestColumn = $sheet->getHighestColumn();   // 取得总列数
        \PhpOffice\PhpSpreadsheet\Cell\Coordinate::columnIndexFromString($highestColumn);
        $lines = $highestRow - 1;
        if ($lines <= 0) {
            return json(['code' => 0, 'message' => '保存失败']);
        }
        $data = array();
        for ($j = 1; $j <=$highestRow; $j++) {
            $data[$j] = [
              'name' => trim($objPHPExcel->getActiveSheet()->getCell("A" . $j)->getValue()),
              'time' => trim($objPHPExcel->getActiveSheet()->getCell("B" . $j)->getValue()),
           ];
           $rt = Db::name('excel')->insert($data[$j]);
        }
     
       
        if ($rt !== false) {
            return json(['code' => 20000, 'message' => '导入成功']);
        } else {
            return json(['code' => 0, 'message' => '导入失败']);
        }
}


超简单的导出Excel数据