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高级应用的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did30467