欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

phpexcel扩展的使用

程序员文章站 2022-05-17 13:54:30
...

php laravel框架phpexcel扩展的使用

1.composer加载扩展

1.compser.json中添加phpexcel配置:“phpoffice/phpexcel”:“1.8.*”
phpexcel扩展的使用
2.执行composer update命令

2.编辑excel文件(一种引用已有excel模板,一种新建excel)

第一种,引用已有模板

注:模板引用时若未xlsx文件,reader需使用excel2007,其他格式用Excel5即可,最后输出excel时同理
模板文件可直接路径名,也可以只是上传的文件_FILES[‘file’][‘tmp_name’]
以该模板为例:
phpexcel扩展的使用

     $objReader = PHPExcel_IOFactory::createReader('excel2007');//xlsx格式,reader用excel2007读取,其他reader用Excel5
        $filename = public_path('template/个人信息.xlsx');
        $objPHPExcel = $objReader->load($filename);
        //选取sheet1
        $objPHPExcel->setActiveSheetIndex(0);
        $thisSheet = $objPHPExcel->getActiveSheet();
        //setCellValue方法给单元格设置值
        $thisSheet->setCellValue('A1' , '小明');
        //setCellValueExplicit方法给单元格设置值并规定格式为文本格式
        $thisSheet->setCellValueExplicit('B1' , '13565655876', \PHPExcel_Cell_DataType::TYPE_STRING);
        $thisSheet->setCellValue('C1' , '男');
        $thisSheet->setCellValue('D1' , '24');
        $thisSheet->setCellValue('E1' , 'php程序猿');
        header('Content-Type: application/vnd.ms-excel;charset=utf-8;');
        header('Content-Disposition: attachment;filename="个人信息.xlsx"');
        header('Cache-Control: max-age=0');
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'excel2007');//xlsx格式,reader用excel2007读取,其他reader用Excel5
        $objWriter->save('php://output');

输出文件结果展示:
phpexcel扩展的使用

第二种,新建文件
		$objPHPExcel = new \PHPExcel();
        $objPHPExcel->setActiveSheetIndex(0);
        $thisSheet = $objPHPExcel->getActiveSheet();
        //合并单元格
        $thisSheet->mergeCells('A1:B3');
        //设置粗体
        $thisSheet->getStyle('A1:B3')->getFont()->setBold(true);
        //设置单元格宽度
        $thisSheet->getColumnDimension('B')->setWidth(20);
        //字体大小
        $thisSheet->getStyle('A1')->getFont()->setSize(20);
        //所有单元格格式居中
        $objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->getDefaultStyle()->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
        //单元格左右居中(对合并过的单元格好像上面所有居中不好使,所以单独设置左右居中)
        $thisSheet->getStyle('A1:B3')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
        //设置边框(四周都加边框)
        $style_array = [
            'borders' => [
                'allborders' => [
                    'style' => \PHPExcel_Style_Border::BORDER_MEDIUM
                ]
            ]
        ];
        $thisSheet->getStyle('A1:B9')->applyFromArray($style_array);
        //自动换行
        $objPHPExcel->getActiveSheet()->getStyle('B9')->getAlignment()->setWrapText(true);
        //设置文本
        $thisSheet->setCellValue('A1', '个人信息');
        $thisSheet->setCellValue('A4', '姓名');
        $thisSheet->setCellValue('A5', '手机号');
        $thisSheet->setCellValue('A6', '性别');
        $thisSheet->setCellValue('A7', '年龄');
        $thisSheet->setCellValue('A8', '工作');
        $thisSheet->setCellValue('A9', '备注');
        $thisSheet->setCellValue('B4', '小明');
        //设置格式为文本格式
        $thisSheet->setCellValueExplicit('B5', '13565655876', \PHPExcel_Cell_DataType::TYPE_STRING);
        $thisSheet->setCellValue('B6', '男');
        $thisSheet->setCellValue('B7', '24');
        $thisSheet->setCellValue('B8', 'php程序猿');
        $thisSheet->setCellValue('B9', '我就试试他自己到底会不会换行!!!!!!!!!!!');
        header('pragma:public');
        header('Content-type:application/vnd.ms-excel;charset=utf-8');
        header("Content-Disposition:attachment;filename=测试文件.xls");
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');//xlsx文件用excel2007,其他用Excel5
        $objWriter->save('php://output');

输出文件结果展示:
phpexcel扩展的使用