好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php读写excel表格程序代码 - php高级应用

php读写excel表格程序代码

工作的第一步就是要将数据从excel中取出来,这里我使用到了一个开源php处理excel类:phpexcel,该项目的详细信息 http://phpexcel.codeplex测试数据/.

我目前使用的是phpexcel1.7.3版本,解压缩后里面有一个PHPExcel和PHPExcel.php文件,我们主要使用那个PHP文件.

这个版本据说是可以支持excel2007,但是我使用2007编辑的xlsx是无法获得该库的支持,于是乎我就将它转化为2003,感觉支持地很好.

下面介绍一下具体的使用,代码如下:

require_once ( './phpexcel1.7.3/PHPExcel.php' );  $php_excel_obj  =  new  PHPExcel();  $php_reader  = newPHPExcel_Reader_Excel2007();  if (! $php_reader ->canRead( $file_name )){          $php_reader =  new  PHPExcel_Reader_Excel5();          if (! $php_reader ->canRead( $file_name )){                 echo 'NO Excel!' ;         }  }  $php_excel_obj  =  $php_reader ->load( $file_name );  $current_sheet  = $php_excel_obj ->getSheet(0); 

上面的主要功能是初始化相关的excel类,并装载excel第一个sheet,代码如下:

$all_column =$current_sheet->getHighestColumn();

$all_row =$current_sheet->getHighestRow();

以上分别获得该表格的最大列值(字母表示如:‘G'),和最大的行数(数值表示),下面将使用循环来讲excel里面的数据读到excel中,代码如下:

$all_arr  =  array ();  $c_arr  =  array ();  //字符对照表   for ( $r_i  = 1;  $r_i <= $all_row ;  $r_i ++){          $c_arr =  array ();          for ( $c_i =  'A' ;  $c_i <=  'B' ;  $c_i ++){                 $adr =  $c_i  .  $r_i ;                 $value =  $current_sheet ->getCell( $adr )->getValue();                 if ( $c_i ==  'A'  &&  empty empty ( $value ) )   break ;                 if ( is_object ( $value ))   $value =  $value ->__toString();                 $c_arr [ $c_i ]=  $value ;         }          $c_arr &&  $all_arr [] =   $c_arr ;  } 

下面简单地介绍一下phpexcel的写操作,这个操作经常用于将数据库中的数据导入到excel中,便于展示和做成更美观的效果,代码如下:

require_once ( './phpexcel1.7.3/PHPExcel.php' );  $excel_obj  =  new  PHPExcel();  $objWriter  = newPHPExcel_Writer_Excel5( $excel_obj );   $excel_obj ->setActiveSheetIndex(0);  $act_sheet_obj = $excel_obj ->getActiveSheet();  $act_sheet_obj ->setTitle( 'sheet' );  $act_sheet_obj ->setCellValue( 'A1' ,  '字符串内容' );  $act_sheet_obj ->setCellValue( 'A2' , 26);    $file_name  =  "output.xls" ;  $objWriter ->save( $file_name ); 

用于将mysql数据用php导出到excel文件中,也许可以作为速成材料,实例代码如下:

<?php  function  to_excel( $sql , $excel_name ) //含参数为SQL语句、导出的excel文件名   {    include_once ( 'PHPExcel/Classes/PHPExcel.php' ); //包含类文件     include_once ( 'PHPExcel/Classes/PHPExcel/Writer/Excel2007.php' ); //包含类文件     $objPHPExcel = new  PHPExcel(); //新建一个excel文件类     $re =mysql_query( $sql ); //执行SQL得到数据集     $i =1;    while ( $list =mysql_fetch_row( $re )) //循环一行行获取数据     {     $objPHPExcel ->getActiveSheet()->setCellValue( 'A' . $i , $list [0]); //excel的第A列第i行写入$list[0]      $objPHPExcel ->getActiveSheet()->setCellValue( 'B' . $i , $list [1]); //依次类推      $objPHPExcel ->getActiveSheet()->setCellValue( 'C' . $i , $list [2]);     $objPHPExcel ->getActiveSheet()->setCellValue( 'D' . $i , $list [3]);     $objPHPExcel ->getActiveSheet()->setCellValue( 'E' . $i , $list [4]);     $objPHPExcel ->getActiveSheet()->setCellValue( 'F' . $i , $list [5]);     $objPHPExcel ->getActiveSheet()->setCellValue( 'G' . $i , $list [6]);     $objPHPExcel ->getActiveSheet()->setCellValue( 'H' . $i , $list [7]);     $objPHPExcel ->getActiveSheet()->setCellValue( 'I' . $i , $list [8]);     $i ++; //开源代码phpfensi测试数据     }    $objWriter  =  new  PHPExcel_Writer_Excel2007( $objPHPExcel ); //将excel数据对象实例化为excel文件对象     $objWriter ->save( $excel_name . ".xlsx" ); //导出并写入当前目录,按照$excel_name命名     echo   "OK!已导出为" . $excel_name ;  }  ?>

查看更多关于php读写excel表格程序代码 - php高级应用的详细内容...

  阅读:35次