• PHPexcel的用法


    由于经常要统计学生的考试成绩,就研究了下PHPexcel这个插件

    顺便说一下,读取方法只针对xls文件。

    如果报错,可以先生存一个xls文件,把需要读取的xls内容复制进去。

    <?php  
         //读取excel文件 header("Content-type:text/html;charset=utf-8"); include 'Classes/PHPExcel/IOFactory.php'; function __construct(){ include_once('Classes/PHPExcel.php'); } function read ($filename){ $objReader=PHPExcel_IOFactory::createReader('Excel5'); $objReader->setReadDataOnly(true); $objPHPExcel = $objReader->load($filename); $objWorksheet = $objPHPExcel->getActiveSheet(); $highestRow = $objWorksheet->getHighestRow(); $highestColumn = $objWorksheet->getHighestColumn(); $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); $excelData = array(); for ($row = 1; $row <= $highestRow; $row++) { for ($col = 0; $col < $highestColumnIndex; $col++) { $excelData[$row][] =(string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue(); } } return $excelData; } $result= read('1.xls'); var_dump($result);
    <?php
      //向xls文件写入内容
      error_reporting(E_ALL);
      ini_set('display_errors', TRUE);  
      include 'Classes/PHPExcel.php';      
      include 'Classes/PHPExcel/IOFactory.php'; 
      //$data:xls文件内容正文
      //$title:xls文件内容标题
      //$filename:导出的文件名
      //$data和$title必须为utf-8码,否则会写入FALSE值
      function write_xls($data=array(), $title=array(), $filename='report'){
        $objPHPExcel = new PHPExcel();
        //设置文档属性,设置中文会产生乱码,需要转换成utf-8格式!!
        // $objPHPExcel->getProperties()->setCreator("云舒")
                   // ->setLastModifiedBy("云舒")
                   // ->setTitle("产品URL导出")
                   // ->setSubject("产品URL导出")
                   // ->setDescription("产品URL导出")
                   // ->setKeywords("产品URL导出");
        $objPHPExcel->setActiveSheetIndex(0);
         
        $cols = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
        //设置www.jb51.net标题
        for($i=0,$length=count($title); $i<$length; $i++) {
          //echo $cols{$i}.'1';
          $objPHPExcel->getActiveSheet()->setCellValue($cols{$i}.'1', $title[$i]);
        }
        //设置标题样式
        $titleCount = count($title);
        $r = $cols{0}.'1';
        $c = $cols{$titleCount}.'1';
        $objPHPExcel->getActiveSheet()->getStyle("$r:$c")->applyFromArray(
          array(
            'font'  => array(
              'bold'   => true
            ),
            'alignment' => array(
              'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT,
            ),
            'borders' => array(
              'top'   => array(
                'style' => PHPExcel_Style_Border::BORDER_THIN
              )
            ),
            'fill' => array(
              'type'    => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR,
              'rotation'  => 90,
              'startcolor' => array(
                'argb' => 'FFA0A0A0'
              ),
              'endcolor'  => array(
                'argb' => 'FFFFFFFF'
              )
            )
          )
        );
         
        $i = 0;
        foreach($data as $d){ //这里用foreach,支持关联数组和数字索引数组
          $j = 0;
          foreach($d as $v){  //这里用foreach,支持关联数组和数字索引数组
            $objPHPExcel->getActiveSheet()->setCellValue($cols{$j}.($i+2), $v);
            $j++;
          }
          $i++;
       }
        // 生成2003excel格式的xls文件
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="'.$filename.'.xls"');
        header('Cache-Control: max-age=0');
     
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output');
      }
    
      $array = array(
        array(1111,'名称','品牌','商品名','http://www.jb51.net'),
        array(1111,'名称','品牌','商品名','http://www.jb51.net'),
        array(1111,'名称','品牌','商品名','http://www.jb51.net'),
        array(1111,'名称','品牌','商品名','http://www.jb51.net'),
        array(1111,'名称','品牌','商品名','http://www.jb51.net'),
      );
      write_xls($array,array('商品id','供应商名称','品牌','商品名','URL'),'report');
       
    ?>
    
  • 相关阅读:
    团队作业—第二阶段08
    团队作业—第二阶段07
    java--Map使用实现模拟斗地主洗牌发牌
    课程作业08 MVC框架具体使用
    课程作业 MVC框架
    课堂作业06_23种设计模式
    课堂作业05 《6种质量属性战术》
    课堂作业04
    课堂作业03
    架构漫谈阅读笔记
  • 原文地址:https://www.cnblogs.com/anxiaoyu/p/6565803.html
Copyright © 2020-2023  润新知