PHP使用PHPexcel导入导出数据的方法


Posted in PHP onNovember 14, 2015

本文实例讲述了PHP使用PHPexcel导入导出数据的方法。分享给大家供大家参考,具体如下:

导入数据:

<?php
error_reporting(E_ALL); //开启错误
set_time_limit(0); //脚本不超时
date_default_timezone_set('Europe/London'); //设置时间
/** Include path **/
set_include_path(get_include_path() . PATH_SEPARATOR . 'https://3water.com/../Classes/');//设置环境变量
/** PHPExcel_IOFactory */
include 'PHPExcel/IOFactory.php';
//$inputFileType = 'Excel5'; //这个是读 xls的
 $inputFileType = 'Excel2007';//这个是计xlsx的
//$inputFileName = './sampleData/example2.xls';
$inputFileName = './sampleData/book.xlsx';
  echo 'Loading file ',pathinfo($inputFileName,PATHINFO_BASENAME),' using IOFactory with a defined reader type of ',$inputFileType,'<br />';
  $objReader = PHPExcel_IOFactory::createReader($inputFileType);
  $objPHPExcel = $objReader->load($inputFileName);
  /*
  $sheet = $objPHPExcel->getSheet(0);
  $highestRow = $sheet->getHighestRow(); //取得总行数
  $highestColumn = $sheet->getHighestColumn(); //取得总列
  */ 
  $objWorksheet = $objPHPExcel->getActiveSheet();//取得总行数
  $highestRow = $objWorksheet->getHighestRow();//取得总列数
  echo 'highestRow='.$highestRow;
  echo "<br>";
  $highestColumn = $objWorksheet->getHighestColumn();
  $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);//总列数
  echo 'highestColumnIndex='.$highestColumnIndex;
  echo "<br />";
  $headtitle=array();
  for ($row = 1;$row <= $highestRow;$row++)
  {
   $strs=array();
   //注意highestColumnIndex的列数索引从0开始
   for ($col = 0;$col < $highestColumnIndex;$col++)
   {
    $strs[$col] =$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
   }
    $info = array(
     'word1'=>"$strs[0]",
     'word2'=>"$strs[1]",
     'word3'=>"$strs[2]",
     'word4'=>"$strs[3]",
    );
    //在这儿,你可以连接,你的数据库,写入数据库了
    print_r($info);
    echo '<br />';
  }
?>

导出数据:

(如果有特殊的字符串 = 麻烦

str_replace(array('='),'',$val['roleName']);)

private function _export_data($data = array())
{
 error_reporting(E_ALL); //开启错误
 set_time_limit(0); //脚本不超时
 date_default_timezone_set('Europe/London'); //设置时间
 /** Include path **/
 set_include_path(FCPATH.APPPATH.'/libraries/Classes/');//设置环境变量
 // Create new PHPExcel object
 Include 'PHPExcel.php';
 $objPHPExcel = new PHPExcel();
 // Set document properties
 $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
    ->setLastModifiedBy("Maarten Balliauw")
    ->setTitle("Office 2007 XLSX Test Document")
    ->setSubject("Office 2007 XLSX Test Document")
    ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
    ->setKeywords("office 2007 openxml php")
    ->setCategory("Test result file");
 // Add some data
 $letter = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');    
 if($data){
  $i = 1;
  foreach ($data as $key => $value) {
  $newobj = $objPHPExcel->setActiveSheetIndex(0);
  $j = 0; 
  foreach ($value as $k => $val) {
   $index = $letter[$j]."$i";
   $objPHPExcel->setActiveSheetIndex(0)->setCellValue($index, $val);
   $j++;
  }
   $i++;
  }
 }   
 $date = date('Y-m-d',time());  
 // Rename worksheet
 $objPHPExcel->getActiveSheet()->setTitle($date);
 $objPHPExcel->setActiveSheetIndex(0);
 // Redirect output to a client's web browser (Excel2007)
 header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
 header('Content-Disposition: attachment;filename="'.$date.'.xlsx"');
 header('Cache-Control: max-age=0');
 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
 $objWriter->save('php://output');
 exit;
}

直接上代码:

public function export_data($data = array())
{
 # code...
 include_once(APP_PATH.'Tools/PHPExcel/Classes/PHPExcel/Writer/IWriter.php') ;
 include_once(APP_PATH.'Tools/PHPExcel/Classes/PHPExcel/Writer/Excel5.php') ;
 include_once(APP_PATH.'Tools/PHPExcel/Classes/PHPExcel.php') ;
 include_once(APP_PATH.'Tools/PHPExcel/Classes/PHPExcel/IOFactory.php') ;
 $obj_phpexcel = new PHPExcel();
 $obj_phpexcel->getActiveSheet()->setCellValue('a1','Key');
 $obj_phpexcel->getActiveSheet()->setCellValue('b1','Value'); 
 if($data){
  $i =2;
  foreach ($data as $key => $value) {
  # code...
  $obj_phpexcel->getActiveSheet()->setCellValue('a'.$i,$value);
  $i++;
  }
 } 
 $obj_Writer = PHPExcel_IOFactory::createWriter($obj_phpexcel,'Excel5');
 $filename = "outexcel.xls";
 header("Content-Type: application/force-download"); 
 header("Content-Type: application/octet-stream"); 
 header("Content-Type: application/download"); 
 header('Content-Disposition:inline;filename="'.$filename.'"'); 
 header("Content-Transfer-Encoding: binary"); 
 header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
 header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
 header("Pragma: no-cache"); 
 $obj_Writer->save('php://output'); 
}

希望本文所述对大家php程序设计有所帮助。

PHP 相关文章推荐
一个目录遍历函数
Oct 09 PHP
封装一个PDO数据库操作类代码
Sep 09 PHP
ThinkPHP自动验证失败的解决方法
Jun 09 PHP
php缓冲 output_buffering的使用详解
Jun 13 PHP
微信扫描二维码登录网站代码示例
Dec 30 PHP
PHP中round()函数对浮点数进行四舍五入的方法
Nov 19 PHP
thinkphp判断访客为手机端或PC端的方法
Nov 24 PHP
thinkphp多层MVC用法分析
Dec 30 PHP
解析 thinkphp 框架中的部分方法
May 07 PHP
Laravel框架实现的记录SQL日志功能示例
Jun 19 PHP
PHP实现小程序批量通知推送
Nov 27 PHP
PHP设计模式之组合模式定义与应用示例
Feb 01 PHP
PHP实现的一致性哈希算法完整实例
Nov 14 #PHP
PHP使用redis实现统计缓存mysql压力的方法
Nov 14 #PHP
PHP+redis实现添加处理投票的方法
Nov 14 #PHP
PHP实现操作redis的封装类完整实例
Nov 14 #PHP
php实现的递归提成方案实例
Nov 14 #PHP
PHP使用Pthread实现的多线程操作实例
Nov 14 #PHP
开启PHP Static 关键字之旅模式
Nov 13 #PHP
You might like
超级实用的7个PHP代码片段分享
2012/01/05 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
2014/04/10 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
2017/07/13 PHP
extjs form textfield的隐藏方法
2008/12/29 Javascript
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
javascript学习笔记(三)显示当时时间的代码
2011/04/08 Javascript
window.addEventListener来解决让一个js事件执行多个函数
2012/12/26 Javascript
JQuery异步获取返回值中文乱码的解决方法
2015/01/29 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
2015/09/14 Javascript
vue2.0 自定义日期时间过滤器
2017/06/07 Javascript
使用JS编写的随机抽取号码的小程序
2017/08/11 Javascript
详解Node.js模板引擎Jade入门
2018/01/19 Javascript
Angular 5.x 学习笔记之Router(路由)应用
2018/04/08 Javascript
jQuery实现可编辑的表格
2019/12/11 jQuery
node.js事件轮询机制原理知识点
2019/12/22 Javascript
vue-socket.io接收不到数据问题的解决方法
2020/05/13 Javascript
Python中多线程及程序锁浅析
2015/01/21 Python
Python实现的数据结构与算法之链表详解
2015/04/22 Python
利用Python实现简单的相似图片搜索的教程
2015/04/23 Python
使用wxPython获取系统剪贴板中的数据的教程
2015/05/06 Python
Python多线程、异步+多进程爬虫实现代码
2016/02/17 Python
Python实现字符串反转的常用方法分析【4种方法】
2017/09/30 Python
Python猴子补丁Monkey Patch用法实例解析
2020/03/23 Python
使用python创建Excel工作簿及工作表过程图解
2020/05/27 Python
如何利用python正则表达式匹配版本信息
2020/12/09 Python
Html5 Geolocation获取地理位置信息实例
2016/12/09 HTML / CSS
模具设计与制造专业应届生求职信
2013/10/18 职场文书
大专计算机个人求职的自我评价
2013/10/21 职场文书
写好自荐信要注意的问题
2013/11/10 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
2016年中秋节晚会领导致辞
2015/11/26 职场文书
培训心得体会怎么写
2016/01/25 职场文书
如何拟写通知正文?
2019/04/02 职场文书