PHPExcel实例

来源:互联网 发布:windows xp开机蓝屏 编辑:程序博客网 时间:2024/06/17 11:10

在项目中我们会对数据进行各种各样的处理,其中不乏将数据库数据导出excel文件、或者将excel文件中的数据导入项目中。下面我们来讲讲怎么导出excel怎么导入excel文件中的数据,

准备:服务器环境,PHPExcel包;

PHPExcel 可去官网下载 http://phpexcel.codeplex.com/


一  PHP导出Excel文件

  include './PHPExcel.php';      //引入PHPExcel类(根据个人文件路径为准)

  $objExcel = new PHPExcel(); // 实例化PHPExcel类
 
  $objSheet = $objExcel->getActiveSheet();// 得到当前活动表格

  $objSheet->setTitle('demo');//设置名称
 
  //填充数据方式(1)
  $objSheet->setCellValue('A1','姓名')->setCellValue('B1','性别')->setCellValue('C1','年龄');
  $objSheet->setCellValue('A2','张三')->setCellValue('B2','男')->setCellValue('C2','18');
  $objSheet->setCellValue('A3','李四')->setCellValue('B3','女')->setCellValue('C3','20');
 
 
   //填充数据方式(2)
  $arr = array(
           array("姓名","性别","年龄"),
           array("张三","男","18"),
           array("李四","女","20")
      );
  $objSheet->fromArray($arr);

 

//按照数据生成excel表
  $objSave = PHPExcel_IOFactory::createWriter($objExcel,'Excel2007');
  //保存当前excel文件
  $objSave->save('./demo.xlsx');  //填写文件保存路径



二 PHP导入Excel文件数据
    include './PHPExcel/IOFactory.php'; //引入PHPExcel导入类(根据个人文件路径为准)
    
    $filePath = './aa.xlsx';  //目标引入文件;
    $fileType = PHPExcel_IOFactory::identify($filePath); //可以获取excel文件后缀(例Excel2003和Excel2007后缀都不同)

   

   
   //根据sheet名选择性读取excel文件中sheet (1)
   $objNote = PHPExcel_IOFactory::createReader($fileType);  //得到读取对象
   $sheetName = 'Sheet1';    //设置读取sheet名
   $objNote->setLoadSheetsOnly($sheetName); //设置只读取某一个sheet;
   $objExcel = $objNote->load($filePath);
/*********************************************************************/
   //也可选择读取所有sheet(2)
   $objExcel = PHPExcel_IOFactory::load($filePath); //加载文件
    



    //读取数据(1)  全部读取
    $sheetCount = $objExcel->getSheetCount(); //获取当前excel文件存在sheet个数
    $data = [];
    for ($i=0; $i < $sheetCount; $i++) {
        $data[$i] = $objExcel->getSheet($i)->toArray(); //读取每个sheet文件数据存放到$data变量中;
    }

    //读取数据(2) 逐个读取;
    foreach ($objExcel->getWorksheetIterator() as $sheet) {  //循环每一个sheet
         foreach ($sheet->getRowIterator() as $row) {        //循环读取每一个sheet里面的每一行
             // if($row->getRowIndex()<2 ){continue;}            //过滤第一行 $row->gerRowIndex()获取当前行数
              foreach ($row->getCellIterator() as $cell) {    //循环读取每一个sheet里面的每一列
                   $data = $cell->getValue();                  //获取每个单元格里面的数据
                   echo $data.'&nbsp&nbsp';
              }
              echo '<br>';
         }
    }

0 0