thinkphp5 之 PHPExcel使用

核心思想:

    PHPExcel只是一个php的扩展,你也可以理解为一个工具包,里面有很多关于处理Excel的类,我们直接去调用就好。

准备工作,导入到出会使用到的函数:

//获取excel操作对象,其中$filePath表示excel文件的路径【一定要写正确,请勿使用  "/public/..."  这种直接用“/”表示的路径】
$objPHPExcel = PHPExcel_IOFactory::load($filePath);

//获取工作表中第一个sheet对象【一个excel中可以有多个工作表即多个sheet】
$sheet=$objPHPExcel->getSheet(0);

//获取当前excel中的sheet对象
$sheet=$objPHPExcel->getActiveSheet(0);

//获取工作表中所有sheets对象
$sheets=$objPHPExcel->getAllSheets()

//获取excel表格的总行数【编辑过的都算,包括表格中写了空格的空行】
$highestRow=$sheet->getHighestRow();

//获取excel表格中的总列数
$highestColumn=$sheet->getHighestColumn();

//将excel中的 A1  ,B1等转换为数字 , 0 ,1 ,...
$highestColumn= PHPExcel_Cell::columnIndexFromString('A1');   // ok, 0

//将0,1,2,....等转换为  A1,B1,C1,....,  
$cellName = PHPExcel_Cell::stringFromColumnIndex('0').1   //OK,   A1

//给  A1 等单元格设置值
$sheet->setCellValue('A1','hello'); 

//根据坐标获取指定单元格的值
$sheet->getCellByColumnAndRow('0','0')->getValue()


引用phpexcel,直接放在thinkphp中的vendor目录下即可。


thinkphp5 之 PHPExcel使用_第1张图片


导出实例:

public function exportExcel($dataArr,$fieldArr)
{
     if (empty($fieldArr) || empty($dataArr))
    {
         return;
     }
     $this->load->library('phpexcel/PHPExcel');
    //创建PHPExcel对象
     $obj = new PHPExcel();
     //创建excel写入对象
     $writer = new PHPExcel_Writer_Excel5($obj);
     //得到当前工作表对象
     $curSheet = $obj->getActiveSheet(0);
     foreach($dataArr as $k => $v)
     {
         foreach($v as $kk => $vv)
        {
                 $cellName = PHPExcel_Cell::stringFromColumnIndex($kk) . ($k+1);
                 $curSheet->setCellValue($cellName,$vv);
         }
     }
     $fileName = date('YmdHis', time());
     ob_end_clean();
     header('Content-Type: application/vnd.ms-execl');
     header('Content-Disposition: attachment;filename="' . $fileName . '.xls"');
     header('Cache-Control: max-age=0'); $writer->save('php://output');
}


读取数据

自动识别2003和2007以后的excel版本


thinkphp5 之 PHPExcel使用_第2张图片
加载phpexcel类

读取表格中的数据 


thinkphp5 之 PHPExcel使用_第3张图片
获取excel表格中的值

你可能感兴趣的:(thinkphp5 之 PHPExcel使用)