phpexcel扩展的使用
程序员文章站
2022-05-17 13:54:30
...
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');
输出文件结果展示:
上一篇: Android 之 ScrollView(垂直滑动)组件
下一篇: CentOS7.2 yum安装