zoukankan      html  css  js  c++  java
  • PHPEXCEL xls模板导入,及格式自定义:合并单元格、加粗、居中等操作

    PHPExcel 是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。

    $excel->getActiveSheet()->mergeCells('A1:F1');      //合并单元格
    $excel->getActiveSheet()->setCellValue("A1","我是标题");

    单元格居中、并加粗:

            $excel->getActiveSheet()->getStyle('A1')->applyFromArray(
                array(
                    'font' => array (
                        'bold' => true
                    ),
                    'alignment' => array(
                        'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER
                    )
                )
            );

    参考:

    http://www.sdhack.com/20121163.html   先请模板,再写入(实用)

    <?php
     include('PHPExcel.php');
     //这些数据假设是从M('xxx')->select()里面出来的
     $data = array (
     array ('id' => 1, 'name' => '张三' ), array ('id' => 2, 'name' => '李四' ), array ('id' => 3, 'name' => '王五' ) );
     //PHPExcel支持读模版 所以我还是比较喜欢先做好一个Excel的模版 比较好,不然要写很多代码 模版我放在根目录了
     //创建一个读Excel模版的对象
     $objReader = PHPExcel_IOFactory::createReader ( 'Excel5' );
     $objPHPExcel = $objReader->load ("template.xls" );
     //获取当前活动的表
     $objActSheet = $objPHPExcel->getActiveSheet ();
     $objActSheet->setTitle ( '演示工作表' );
     $objActSheet->setCellValue ( 'A1', '这个是PHPExcel演示标题' );
     $objActSheet->setCellValue ( 'A2', '日期:' . date ( 'Y年m月d日', time () ));
     $objActSheet->setCellValue ( 'F2', '导出时间:' . date ( 'H:i:s' ) );
     //我现在就开始输出列头了
     $objActSheet->setCellValue ( 'A3', '序号' );
     $objActSheet->setCellValue ( 'B3', '姓名' );
     //具体有多少列 看你的数据走 会涉及到计算
     //现在就开始填充数据了 (从数据库中) $data
     $baseRow = 4; //数据从N-1行开始往下输出 这里是避免头信息被覆盖
     foreach ( $data as $r => $dataRow ) {
     $row = $baseRow + $r;
     //将数据填充到相对应的位置
     $objPHPExcel->getActiveSheet ()->setCellValue ( 'A' . $row, $dataRow ['id'] ); //学员编号
     $objPHPExcel->getActiveSheet ()->setCellValue ( 'B' . $row, $dataRow ['name'] ); //真实姓名
     }
     //导出
     $filename = time ();
     header ( 'Content-Type: application/vnd.ms-excel' );
     header ( 'Content-Disposition: attachment;filename="' . $filename . '.xls"' ); //"'.$filename.'.xls"
     header ( 'Cache-Control: max-age=0' );
     $objWriter = PHPExcel_IOFactory::createWriter ( $objPHPExcel, 'Excel5' ); //在内存中准备一个excel2003文件
    ob_end_clean();//清除缓冲区,避免乱码
    $objWriter->save ( 'php://output' ); ?>

     上面先定好.xls模板,再放入数据的例子,很实用

    http://blog.sina.com.cn/s/blog_632d132c0102vyw0.html  用代码写模板

  • 相关阅读:
    【MySQL】学生成绩
    【MySQL】统计累计求和
    【MySQL】查询不在表中的数据
    【MySQL】排名函数
    【Python】数据处理分析,一些问题记录
    【Github】如何下载csv文件/win10如何修改txt文件为csv文件
    【Windows】github无法访问/hosts文件只能另存为txt
    【C/C++】拔河比赛/分组/招商银行
    【C/C++】金币
    【C/C++】旋转数组的最小数字/ 剑指offer
  • 原文地址:https://www.cnblogs.com/xiangsj/p/7154009.html
Copyright © 2011-2022 走看看