自己测试,在yii2中实现PHPExcel数据导出实例
来源:互联网 发布:阿里云 系统镜像 上传 编辑:程序博客网 时间:2024/05/16 15:01
以导出学生信息表为例
1.首先,下载相应的PHPExcel插件,放到项目合适的目录下,如common\extensions
2.创建StudentController
<?phpclass StudentController extends \yii\web\Controller{ public function actionExportStudentMessage(){ StudentService::service()->exportStudentMessage(); }}
3.创建StudentExcelService
<?phpclass StudentExcelService extends \Common\services\BaseServices{ public $filename; //文件名称 public function __construct($filename = '') { parent::__construct(); $this->filename = $filename; require_once(xxxxx/phpexcel/PHPExcel.php'); require_once(xxxxx/phpexcel/PHPExcel/IOFactory.php'); } //生成Excel表格数据 public function exportListToFile($objPHPExcel) { header('Content-Type: application/vnd.ms-excel;charset=utf-8'); header('Content-Disposition: attachment;filename=' . urlencode($this->filename . ".xls") . ''); header('Cache-Control: max-age=0'); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); exit;//一定要紧跟exit 要不然会有列数限制或说文件损坏之类 }}
4.创建对应的StudentService
<?phpclass StudentService extends StudentExcelService{ public funciton exportStudentMessage() { $this->filename = "学生信息表".date("Y-m-d"); $first_row_array = array( "id"=>"编号", "name"=>"姓名", "sex"=>"性别", "age"=>"年龄" ); #获取导出数据 $list = $this->getStudentInfo(); list($objPHPExcel, $excel_row_char, $line_num) = $this->setFirstLine($first_row_array, $title = '学生信息'); #设置表格数据内容 $this->setStudentExport($list, $excel_row_char, $objPHPExcel, $line_num); #导出excel文件 $this->exportListToFile($objPHPExcel); } public function setFirstLine($first_row_array, $title) { $row_char = 'A'; $first_line_num = '2'; $objPHPExcel = new \PHPExcel(); $objPHPExcel ->getProperties() ->setCreator($title . "导出") ->setLastModifiedBy($title . "导出") ->setTitle($title . "导出") ->setSubject($title . "导出") ->setDescription($title . "导出") ->setKeywords("excel") ->setCategory("result file"); #设置样式,宽度,居中 $dao = $objPHPExcel->setActiveSheetIndex(0); $excel_row_char = array(); foreach ($first_row_array as $key => $value) { $excel_row_char[$key] = $row_char; $dao->setCellValue($row_char . $first_line_num, $value); $row_char++; } return array($objPHPExcel, $excel_row_char, $first_line_num);}public function setStudentExport($data, $excel_row_char, \PHPExcel $objPHPExcel, $line_num){ $styleArray1 = array( 'alignment' => array( 'horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER, ), ); $dao = $objPHPExcel->setActiveSheetIndex(0); $dao->getDefaultColumnDimension()->setWidth(15); $dao->getColumnDimension('B')->setWidth(30); $dao->getColumnDimension('C')->setWidth(60); $dao->getRowDimension('1')->setRowHeight(22); $dao->getRowDimension('2')->setRowHeight(20); $dao->getStyle('A1')->getFont()->setBold(true); $dao->getStyle('A1')->getFont()->setSize(16); $dao->getStyle('A1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $dao->getStyle('A2:D2')->getFont()->setBold(true); $dao->getStyle('A2:D2')->getFont()->setSize(10); $dao->getStyle('A2:D2')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $dao->getStyle('A2:D2')->getBorders()->getAllBorders()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN); $dao->mergeCells('A1:D1'); $dao->setCellValue('A1', '学生信息表'); $dao->freezePane('A3'); $objPHPExcel->getActiveSheet()->getStyle('A:D')->applyFromArray($styleArray1); foreach ($data as $key => $list) { $line_num += 1; $dao->setCellValueExplicit($excel_row_char['id'] . $line_num, $list['id']) ->setCellValue($excel_row_char['name'] . $line_num, $list['name']) ->setCellValue($excel_row_char['age'] . $line_num, $list['age']) ->setCellValue($excel_row_char['sex'] . $line_num, $list['sex']); unset($data[$key]); }}}
阅读全文
0 0
- 自己测试,在yii2中实现PHPExcel数据导出实例
- PHPexcel数据库导出数据实例
- PHPEXCEL结合MYSQL+PHP实现数据库数据导出EXCEL实例
- PHPEXCEL结合MYSQL+PHP实现数据库数据导出EXCEL实例
- ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
- 利用PHPExcel实现数据的导入导出
- thinkphp中使用PHPExcel导出数据
- PHPExcel导出的问题,在PHP7中
- PHPExcel导出的问题,在PHP7中
- 在YII中使用PHPExcel扩展导出数据到EXCEL中
- ThinkPHP + PHPExcel 导出数据
- phpexcel 导出数据
- phpexcel 导出数据
- PHPExcel数据导出
- 在Yii框架中使用PHPExcel扩展从数据库导出excel文件功能的实现
- phpexcel 导出数据库中数据到excel表中
- phpexcel 导出实例--2013.8.1
- 使用phpExcel实现Excel数据的导入导出(完全步骤)
- Android零基础入门第37节:初识ListView
- java.io理解(一)
- CodeFroces Gym 100860A AutoCoder
- Java8里面的日期操作整理
- 简易聊天对话框
- 自己测试,在yii2中实现PHPExcel数据导出实例
- Ubuntu系统使用RAR格式文件命令
- Linux下加载.ko驱动模块的两种方法:insmod与modprobe
- 第六篇:Java语法糖
- Redis系列—Redis事件订阅
- EF AF BE
- HDU-4819: Mosaic(二维线段树(树套树))
- supervisord 配置简单使用
- 树结构练习——排序二叉树的中序遍历