加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHPEXCEL的用法和简介

发布时间:2022-02-17 19:12:22 所属栏目:PHP教程 来源:互联网
导读:PHPEXCEL是一个用来生成excel的php插件,他可以很方便的对excel数据进行操作,如:生成excel,修改excel数据等等. 一、PHPEXCEL简介 PHPEXCEL提供了一系列的API,能够解析与生成excel,pdf之类的文档. PHPEXCEL虽然强大,不过使用起来相对有些繁锁,如果需要输出较
  PHPEXCEL是一个用来生成excel的php插件,他可以很方便的对excel数据进行操作,如:生成excel,修改excel数据等等.
 
  一、PHPEXCEL简介
 
  PHPEXCEL提供了一系列的API,能够解析与生成excel,pdf之类的文档.
 
  PHPEXCEL虽然强大,不过使用起来相对有些繁锁,如果需要输出较为复杂格式时,是一个不错的选择,可以到官方下载到源码.
 
  二、PHPEXCEL部分函数
 
  设置当前的工作簿,返回该工作簿对象:
 
  $excelSheet = $excel->setActiveSheetIndex(0);
 
  合并单元格,返回该单元格对象,以下示例即合并A列第一行与第二行所在单元格:
 
  $excelSheet->mergeCells('A1:A2');
 
  设置单元格的值,参数:单元格名称,值:
 
  $excelSheet->setCellValue('A1', '字符串内容');
  $excelSheet->setCellValue('A2', 26); //数值  
  $excelSheet->setCellValue('A3', true); //布尔值  
  $excelSheet->setCellValue('A4', '=SUM(A2:A2)'); //公式
  phpexcel用法介绍,代码如下:
 
  include ‘PHPExcel.php’;
    include ‘PHPExcel/Writer/Excel2007.php’;
    //或者include ‘PHPExcel/Writer/Excel5.php’; 用于输出.xls的
    创建一个excel
    $objPHPExcel = new PHPExcel();
    保存excel—2007格式
    $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
    //或者$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); 非2007格式
    $objWriter->save(”xxx.xlsx”);
    直接输出到浏览器
    $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
    header(”Pragma: public”);
    header(”Expires: 0″);
    header(”Cache-Control:must-revalidate, post-check=0, pre-check=0″);
    header(”Content-Type:application/force-download”);
    header(”Content-Type:application/vnd.ms-execl”);
    header(”Content-Type:application/octet-stream”);
    header(”Content-Type:application/download”);;
    header(’Content-Disposition:attachment;filename=”resume.xls”‘);
    header(”Content-Transfer-Encoding:binary”);
    $objWriter->save(’php://output’);
    
  ——————————————————————————————————————–
    设置excel的属性:
    
   代码如下 复制代码
  创建人
    $objPHPExcel->getProperties()->setCreator(”Maarten Balliauw”);
    最后修改人
    $objPHPExcel->getProperties()->setLastModifiedBy(”Maarten Balliauw”);
    标题
    $objPHPExcel->getProperties()->setTitle(”Office 2007 XLSX Test Document”);
    题目
    $objPHPExcel->getProperties()->setSubject(”Office 2007 XLSX Test Document”);
    描述
    $objPHPExcel->getProperties()->setDescription(”Test document for Office 2007 XLSX, generated using PHP classes.”);
    关键字
    $objPHPExcel->getProperties()->setKeywords(”office 2007 openxml php”);
    种类
    $objPHPExcel->getProperties()->setCategory(”Test result file”);
    ——————————————————————————————————————–
    设置当前的sheet
    $objPHPExcel->setActiveSheetIndex(0);
    设置sheet的name
    $objPHPExcel->getActiveSheet()->setTitle(’Simple’);
    设置单元格的值
    $objPHPExcel->getActiveSheet()->setCellValue(’A1′, ‘String’);
    $objPHPExcel->getActiveSheet()->setCellValue(’A2′, 12);
    $objPHPExcel->getActiveSheet()->setCellValue(’A3′, true);
    $objPHPExcel->getActiveSheet()->setCellValue(’C5′, ‘=SUM(C2:C4)’);
    $objPHPExcel->getActiveSheet()->setCellValue(’B8′, ‘=MIN(B2:C5)’);
    合并单元格
    $objPHPExcel->getActiveSheet()->mergeCells(’A18:E22′);
    分离单元格
    $objPHPExcel->getActiveSheet()->unmergeCells(’A28:B28′);
  三、PHPEXCEL举例应用
 
  整个代码如下,值得注意的是表头用了$orderCellData记录了每个商户编号的顺序,为了在表体把对应的数据取出,代码如下:
 
  require_once '../../../libs/PHPExcel/Classes/PHPExcel.php';
      require_once '../../../libs/PHPExcel/Classes/PHPExcel/Writer/Excel5.php';
      include_once '../../../libs/PHPExcel/Classes/PHPExcel/IOFactory.php';
      include '../common/config.php';
      // 创建一个处理对象实例(此对象对于2003 2007是相同的)
      $objExcel = new PHPExcel();
      
      //设置属性(这段代码无关紧要,其中的内容可以替换为你需要的)
      $objExcel->getProperties()->setCreator("office 2003 excel");
      $objExcel->getProperties()->setLastModifiedBy("office 2003 excel");
      $objExcel->getProperties()->setTitle("Office 2003 XLS Test Document");
      $objExcel->getProperties()->setSubject("Office 2003 XLS Test Document");
      $objExcel->getProperties()->setDescription("Test document for Office 2003 XLS, generated using PHP classes.");
      $objExcel->getProperties()->setKeywords("office 2003 openxml php");
      $objExcel->getProperties()->setCategory("Test result file");
      
      //开始处理数据(索引从0开始)
      $objExcel->setActiveSheetIndex(0);
  
      $conn = mssql_connect($config['mssql']['host'],$config['mssql']['user'],$config['mssql']['password']);
      mssql_select_db($config['mssql']['dbname'],$conn);
      
      $tm=$_REQUEST['tm'];
      
      $sql = "exec HNow05_getTTSpace '','".$tm."','',1";
      $sql=mb_convert_encoding($sql,'GBK','UTF-8');
      $res=mssql_query($sql);
  
      $i=0;
      $k = array('站码','站名','河系','来报时间','水位','水势');
      $count = count($k);
      $arrs = array('A','B','C','D','E','F');
      //添加表头
      for($i=0;$i<$count;$i++){
         $objExcel->getActiveSheet()->setCellValue($arrs[$i]."1", "$k[$i]");
         
      }
      
      /*--------从数据库读取数据-------*/
      $i=0;
      while($arr=mssql_fetch_array($res))
      {
         $stcd = $arr["STCD"];
         $stnm = $arr["STNM"];
         $rvnm = $arr["RVNM"];
         $tm= $arr["TM"];
         $tdz= $arr["TDZ"];
          $tdptn= $arr["TDPTN"];
         if($tdptn=='6'){
             $tdptn='平';
         }else if($tdptn=='5'){
             $tdptn='涨';
         }else if($tdptn=='4'){
             $tdptn='落';
         }
  
         $u1=$i+2;
         $stnm=iconv("GBK","utf-8",$stnm);
         $rvnm=iconv("GBK","utf-8",$rvnm);
         $tm=iconv("GBK","utf-8",$tm);
  
         /*----------写入内容-------------*/
         $objExcel->getActiveSheet()->setCellValue('a'.$u1, "$stcd");
         $objExcel->getActiveSheet()->setCellValue('b'.$u1, "$stnm");
         $objExcel->getActiveSheet()->setCellValue('c'.$u1, "$rvnm");
         $objExcel->getActiveSheet()->setCellValue('d'.$u1, "$tm");
         $objExcel->getActiveSheet()->setCellValue('e'.$u1, "$tdz");
         $objExcel->getActiveSheet()->setCellValue('f'.$u1, "$tdptn");
  
         $i++;
      }
       // 设置页眉和页脚。如果没有不同的标题奇数/即使是使用单头假定.
      $objExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&BPersonal cash register&RPrinted on &D');
      $objExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objExcel->getProperties()->getTitle() . '&RPage &P of &N');
      
      // 设置页方向和规模
      $objExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT);
      $objExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
      
      // 重命名表
      $objExcel->getActiveSheet()->setTitle('实时潮汐情况');
      
      // Set active sheet index to the first sheet, so Excel opens this as the first sheet
      $objExcel->setActiveSheetIndex(0);
       //开源代码Cuoxin.com
      // Redirect output to a client’s web browser (Excel5)保存为excel2003格式
      //设置Excel的名字
      $excelName = '实时潮汐情况('.$tm.')';
      //$excelName = 'Excel_'.date("YmdHis");
      header('Content-Type: application/vnd.ms-excel');
      header('Cache-Control: max-age=0');
      header( 'Content-Disposition: attachment; filename='.iconv("utf-8", "GBK", $excelName).'.xls');
      $objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel5');
      $objWriter->save('php://output');
  
      exit;

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读