PHPExcel自动按照数据的列数导出文件(带demo代码)
2017-08-09 18:18
1026 查看
本文的demo样例代码在百度云盘上可自行下载 点击打开链接(http://pan.baidu.com/s/1eRNsDfO)
实例代码展示如下
实例代码展示如下
<?php include "PHPExcel/Classes/PHPExcel.php"; /**自动根据表格的数据量将数据保存至Excel 表格 * @param array $data 分为 title:报表的标题 list:数据的数组 column:每列的命名 * @return bool */ function autoOutSheet($data) { $column = count(current($data['list']));//每个数组有多少列 $ABCinfo = ABCinfo(); $end_column = $ABCinfo[$column]; $objectPHPExcel = new \PHPExcel(); $objectPHPExcel->setActiveSheetIndex(0); //报表头的输出 $objectPHPExcel->getActiveSheet()->mergeCells('B1:' . $end_column . '1'); $objectPHPExcel->getActiveSheet()->setCellValue('B1', $data['title']); $objectPHPExcel->setActiveSheetIndex(0)->getStyle('B1')->getFont()->setSize(24); $objectPHPExcel->setActiveSheetIndex(0)->getStyle('B1') ->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('B2', '日期:' . date("Y年m月j日")); //表格头的输出 $objectPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(5); for ($i = 0; $i < $column; $i++) { $objectPHPExcel->setActiveSheetIndex(0)->setCellValue($ABCinfo[$i + 1] . '3', $data['column'][$i]); $objectPHPExcel->getActiveSheet()->getColumnDimension($ABCinfo[$i + 1])->setWidth(25); } //设置居中 $objectPHPExcel->getActiveSheet()->getStyle('B3:' . $end_column . '3') ->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //设置边框 $objectPHPExcel->getActiveSheet()->getStyle('B3:' . $end_column . '3') ->getBorders()->getTop()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN); $objectPHPExcel->getActiveSheet()->getStyle('B3:' . $end_column . '3') ->getBorders()->getLeft()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN); $objectPHPExcel->getActiveSheet()->getStyle('B3:' . $end_column . '3') ->getBorders()->getRight()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN); $objectPHPExcel->getActiveSheet()->getStyle('B3:' . $end_column . '3') ->getBorders()->getBottom()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN); $objectPHPExcel->getActiveSheet()->getStyle('B3:' . $end_column . '3') ->getBorders()->getVertical()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN); //设置颜色 $objectPHPExcel->getActiveSheet()->getStyle('B3:' . $end_column . '3')->getFill() ->setFillType(\PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('FF66CCCC'); $n = 0; foreach ($data['list'] as $key => $value) { $currentRowNum = $n + 4; //明细的输出 foreach ($value as $k => $v) { $objectPHPExcel->getActiveSheet()->setCellValue($ABCinfo[$k + 1] . $currentRowNum, $v); } //设置边框 $objectPHPExcel->getActiveSheet()->getStyle('B' . $currentRowNum . ':' . $end_column . $currentRowNum) ->getBorders()->getTop()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN); $objectPHPExcel->getActiveSheet()->getStyle('B' . $currentRowNum . ':' . $end_column . $currentRowNum) ->getBorders()->getLeft()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN); $objectPHPExcel->getActiveSheet()->getStyle('B' . $currentRowNum . ':' . $end_column . $currentRowNum) ->getBorders()->getRight()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN); $objectPHPExcel->getActiveSheet()->getStyle('B' . $currentRowNum . ':' . $end_column . $currentRowNum) ->getBorders()->getBottom()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN); $objectPHPExcel->getActiveSheet()->getStyle('B' . $currentRowNum . ':' . $end_column . $currentRowNum) ->getBorders()->getVertical()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN); $n = $n + 1; } $objectPHPExcel->getActiveSheet()->getPageSetup()->setHorizontalCentered(true); $objectPHPExcel->getActiveSheet()->getPageSetup()->setVerticalCentered(false); ob_end_clean(); ob_start(); header('Content-Type : application/vnd.ms-excel'); header('Content-Disposition:attachment;filename="' . $data['title'] . '-' . date("Y年m月j日") . '.xls"'); $objWriter = \PHPExcel_IOFactory::createWriter($objectPHPExcel, 'Excel5'); $objWriter->save('php://output'); return true; } /**列的对应信息 * @return array */ function ABCinfo() { return [ 1 => 'B', 2 => 'C', 3 => 'D', 4 => 'E', 5 => 'F', 6 => 'G', 7 => 'H', 8 => 'I', 9 => 'J', 10 => 'K', 11 => 'L', 12 => 'M', 13 => 'N', 14 => 'O', 15 => 'P', 16 => 'Q', 17 => 'R', 18 => 'S', 19 => 'T', 20 => 'U', 21 => 'V', 22 => 'W', 23 => 'X', 24 => 'Y', 25 => 'Z', ]; } //示例数据 $data=[ ['2017-08-01',10,20,2000,3000], ['2017-08-01',10,20,2000,3000], ['2017-08-01',10,20,2000,3000], ['2017-08-01',10,20,2000,3000], ['2017-08-01',10,20,2000,3000], ['2017-08-01',10,20,2000,3000], ['2017-08-01',10,20,2000,3000], ]; $outData['list']=$data; $outData['title']="统计报表";//报表的标题 $outData['column']=['时间','发红包数','交易包数','发钱总额度','交易总额度'];//每列的命名 //调用输出报表方法 autoOutSheet($outData);
相关文章推荐
- 【代码实现】PHP导入Excel和导出数据为Excel文件
- 【代码实现】PHP导入Excel和导出数据为Excel文件
- 一个绝对很好的将DataTable中的数据导出到Excel文件中的类源代码
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- PHP导出MySQL数据到Excel文件(fputcsv)
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- PHP导出MySQL数据到Excel文件(fputcsv)
- PHP导出MySQL数据到Excel文件
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- php 查询数据导出伪excel文件
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- 使用PHP导入Excel和导出数据为Excel文件
- CI框架里面PHPExcel的使用|导出数据到Excel文件
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- [导入]Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- php数据导入导出之excel(csv文件)
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)