当前位置:首页 > PHP教程 > php应用 > 列表

php怎么读取excel?php中使用PHPExcel读写excel(xls)文件的方法

发布:smiling 来源: PHP粉丝网  添加日期:2018-07-20 14:15:17 浏览: 评论:0 

本文实例讲述了PHP中使用PHPExcel读写excel(xls)文件的方法,非常实用。分享给大家供大家参考之用。具体方法如下:

很多PHP类库在读取中文的xls、csv文件时会有问题,网上找了下资料,发现PHPExcel类库好用,官网地址为:http://phpexcel.codeplex.com/。现将PHPExcel读写Excel的方法分别叙述如下:

1、读取xls文件内容

  1. <?php 
  2.   //向xls文件写入内容 
  3.   error_reporting(E_ALL); 
  4.   ini_set('display_errors', TRUE);  
  5.   <a href="/tags.php/include/" target="_blank">include</a>'Classes/PHPExcel.php'      
  6.   include'Classes/PHPExcel/IOFactory.php' 
  7.   //$data:xls文件内容正文 
  8.   //$title:xls文件内容标题 
  9.   //$filename:导出的文件名 
  10.   //$data和$title必须为utf-8码,否则会写入FALSE值 
  11.   functionwrite_xls($data=array(),$title=array(),$filename='report'){ 
  12.     $objPHPExcel=newPHPExcel(); 
  13.     //设置文档属性,设置中文会产生乱码,需要转换成utf-8格式!! 
  14.     // $objPHPExcel->getProperties()->setCreator("云舒") 
  15.                // ->setLastModifiedBy("云舒") 
  16.                // ->setTitle("产品URL导出") 
  17.                // ->setSubject("产品URL导出") 
  18.                // ->setDescription("产品URL导出") 
  19.                // ->setKeywords("产品URL导出"); 
  20.     $objPHPExcel->setActiveSheetIndex(0); 
  21.       
  22.     $cols='ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
  23.     //设置www.jb51.net标题 
  24.     for($i=0,$length=count($title);$i<$length;$i++) { 
  25.       //echo $cols{$i}.Ƈ' 
  26.       $objPHPExcel->getActiveSheet()->setCellValue($cols{$i}.Ƈ',$title[$i]); 
  27.     } 
  28.     //设置标题样式 
  29.     $titleCount=count($title); 
  30.     $r=$cols{0}.Ƈ' 
  31.     $c=$cols{$titleCount}.Ƈ' 
  32.     $objPHPExcel->getActiveSheet()->getStyle("$r:$c")->applyFromArray( 
  33.       array
  34.         'font' =>array
  35.           'bold'  => true 
  36.         ), 
  37.         'alignment'=>array
  38.           'horizontal'=> PHPExcel_Style_Alignment::HORIZONTAL_RIGHT, 
  39.         ), 
  40.         'borders'=>array
  41.           'top'  =>array
  42.             'style'=> PHPExcel_Style_Border::BORDER_THIN 
  43.           ) 
  44.         ), 
  45.         'fill'=>array
  46.           'type'   => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR, 
  47.           'rotation' => 90, 
  48.           'startcolor'=>array
  49.             'argb'=>'FFA0A0A0' 
  50.           ), 
  51.           'endcolor' =>array
  52.             'argb'=>'FFFFFFFF' 
  53.           ) 
  54.         ) 
  55.       ) 
  56.     ); 
  57.       
  58.     $i= 0; 
  59.     <a href="/tags.php/foreach/" target="_blank">foreach</a>($dataas$d) {//这里用foreach,支持关联数组和数字索引数组 
  60.       $j= 0; 
  61.       foreach($das$v) { //这里用foreach,支持关联数组和数字索引数组 
  62.         $objPHPExcel->getActiveSheet()->setCellValue($cols{$j}.($i+2),$v); 
  63.         $j++; 
  64.       } 
  65.        $i++; 
  66.     } 
  67.     // 生成2003excel格式的xls文件 
  68.     header('Content-Type: application/vnd.ms-excel'); 
  69.     header('Content-Disposition: attachment;filename="'.$filename.'.xls"'); 
  70.     header('Cache-Control: max-age=0'); 
  71.   
  72.     $objWriter= PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5'); 
  73.     $objWriter->save('php://output'); 
  74.   } 
  75.   $array=array
  76.     array(1111,'名称','品牌','商品名','http://www.phpfensi.com'), 
  77.     array(1111,'名称','品牌','商品名','http://www.phpfensi.com'), 
  78.     array(1111,'名称','品牌','商品名','http://www.phpfensi.com'), 
  79.     array(1111,'名称','品牌','商品名','http://www.phpfensi.com'), 
  80.     array(1111,'名称','品牌','商品名','http://www.phpfensi.com'), 
  81.   ); 
  82.   write_xls($array,array('商品id','供应商名称','品牌','商品名','URL'),'report'); 
  83.     
  84. ?> 

2、向xls文件写内容

  1. <?php 
  2.   //获取<a href="/database/database.html" target="_blank">数据库</a>数据(mysqli预处理学习) 
  3.   $config=array
  4.     'DB_TYPE'=>'mysql'
  5.     'DB_HOST'=>'localhost'
  6.     'DB_NAME'=>'test'
  7.     'DB_USER'=>'root'
  8.     'DB_PWD'=>'root'
  9.     'DB_PORT'=>

    Tags: php读取excel PHPExcel

    分享到: