phpexcel扩展的使用

php laravel框架phpexcel扩展的使用

1.composer加载扩展

1.compser.json中添加phpexcel配置:“phpoffice/phpexcel”:“1.8.*”
在这里插入图片描述
2.执行composer update命令

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

第一种,引用已有模板

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

     $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');

输出文件结果展示:
在这里插入图片描述

第二种,新建文件
		$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');

输出文件结果展示:
在这里插入图片描述

发布了5 篇原创文章 · 获赞 0 · 访问量 168
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览