修订版 PHP 导入 、导出EXCEL

  1. <?php
  2. header(“Content-Type: text/html; charset=utf-8”);
  3. require_once ‘./PHPExcel.php’;
  4. require_once ‘./PHPExcel/IOFactory.php’;
  5. require_once ‘./PHPExcel/Reader/Excel5.php’;
  6. /**
  7. *    读取Excel表格
  8. *    @param $filePath   Excel文件路径
  9. *    @param $field        需要保存的字段        array(‘id’,’username’,’password’)
  10. *    @param $column        读取Excel那列        array(‘A’,’B’,’C’)
  11. *    @param $start        从第几行遍历        num
  12. *    @examlpe
  13. */
  14.     $filePath = ‘Book1.xls’;
  15.     $column = array( ‘A’,’B’,’C’,’D’,’E’);
  16.     $start = 1;
  17.     $list = readExcel($filePath,$column,$start);
  18. function readExcel($filePath,$column,$start){
  19.     $objReader = PHPExcel_IOFactory::createReader(‘Excel5’);//use excel2007 for 2007 format
  20.     $objPHPExcel = $objReader->load($filePath); //$filename可以是上传的文件,或者是指定的文件
  21.     $sheet = $objPHPExcel->getSheet(0);
  22.     $highestRow = $sheet->getHighestRow(); // 取得总行数
  23.     $highestColumn = $sheet->getHighestColumn(); // 取得总列数
  24.     for($j=$start;$j<=$highestRow;$j++)
  25.     {
  26.         $colData = array();
  27.         $count = count($column);
  28.         for($i=0;$i<$count;$i++){
  29.             //$colData[“id”.($i+1)] = $objPHPExcel->getActiveSheet()->getCell($column[$i].$j)->getValue();//获取A列的值
  30.             $colData[$column[$i]] = $objPHPExcel->getActiveSheet()->getCell($column[$i].$j)->getValue();//获取A列的值
  31.         }
  32.         $excelData[] = $colData;
  33.     }
  34.     return $excelData;
  35. }
  36. //$data = array(array(‘a’,’b’,’c’,’d’),array(‘e’,’f’,’g’,’h’));
  37. $field = array(‘A’,’B’,’C’,’D’,’E’,’F’);
  38. exportexcel($list,$field,’test1111.xls’,’aaaaaaa’);
  39. /**
  40. *    导出数据为excel表格
  41. *    @param $data    一个二维数组,结构如同从数据库查出来的数组
  42. *    @param $title   excel的第一行标题,一个数组,如果为空则没有标题
  43. *    @param $filename 下载的文件名
  44.     $param $field    保存到excel 的 第几行  的第几列
  45. *    @examlpe
  46.     exportexcel($data,$field,’test.xls’,’这是个测试’);
  47. */
  48. function exportexcel($data,$field,$filename,$title){
  49.         $objPHPExcel = new PHPExcel; //实例化excel类
  50.         //$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); //实例化excel5(2007以前的版本)写入类
  51.         $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  52.          /* 设置当前的sheet */
  53.         $objPHPExcel->setActiveSheetIndex(0);
  54.         $objActSheet = $objPHPExcel->getActiveSheet();
  55.         /**shee标题**/
  56.         $objActSheet->setTitle($title);
  57.         $fields = ”;
  58.         $i = 1;
  59.         foreach($data as $value){
  60.             $j = 0;
  61.             foreach($value as $k=>$v){
  62.                 $fields = $field[$j].$i;
  63.                 $objActSheet->setCellValue($fields,$v);
  64.                 $j++;
  65.             }
  66.             $i++;
  67.         }
  68.         $objWriter->save($filename);
  69.         header(“Pragma: public”);
  70.         header(“Expires: 0”);
  71.         header(“Cache-Control:must-revalidate,post-check=0,pre-check=0”);
  72.         header(“Content-Type:application/force-download”);
  73.         header(“Content-Type:application/vnd.ms-execl”);
  74.         header(“Content-Type:application/octet-stream”);
  75.         header(“Content-Type:application/download”);
  76.         header(‘Content-Disposition:attachment;filename=’.$filename);
  77.         header(“Content-Transfer-Encoding:binary”);
  78.         $objWriter->save(‘php://output’);
  79. }    
  80. ?>

标签