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 相关文章推荐
PHP nl2br函数 将换行字符转成 &amp;lt;br&amp;gt;
Aug 21 PHP
php实例分享之二维数组排序
May 15 PHP
php静态文件生成类实例分析
Jan 03 PHP
php rsa加密解密使用详解
Jan 14 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
Jan 03 PHP
PHP使用Pear发送邮件(Windows环境)
Jan 05 PHP
Yii数据模型中rules类验证器用法分析
Jul 15 PHP
php.ini中date.timezone设置详解
Nov 20 PHP
php输出图像的方法实例分析
Feb 16 PHP
深入浅析PHP的session反序列化漏洞问题
Jun 15 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 PHP
详解PHP用mb_string处理windows中文字符
May 26 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
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
咖啡与牛奶
2021/03/03 冲泡冲煮
一个可以找出源代码中所有中文的工具
2006/10/25 PHP
PHP学习 变量使用总结
2011/03/24 PHP
php对数组内元素进行随机调换的方法
2015/05/12 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
PHP foreach遍历多维数组实现方式
2016/11/16 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
javascript 贪吃蛇实现代码
2008/11/22 Javascript
js几个验证函数代码
2010/03/25 Javascript
JQuery之拖拽插件实现代码
2011/04/14 Javascript
js设置组合快捷键/tabindex功能的方法
2013/11/21 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
2016/06/06 Javascript
理解javascript中的闭包
2017/01/11 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
浅谈webpack 自动刷新与解析
2018/04/09 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
element-ui 中使用upload多文件上传只请求一次接口
2019/07/19 Javascript
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
js实现点击上传图片并设为模糊背景
2020/08/02 Javascript
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
Python Django使用forms来实现评论功能
2016/08/17 Python
树莓派动作捕捉抓拍存储图像脚本
2019/06/22 Python
python接口自动化如何封装获取常量的类
2019/12/24 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
2020/07/01 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
2021/02/25 Python
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
新加坡时尚网上购物:Zalora新加坡
2016/07/26 全球购物
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
常务副县长“四风”个人对照检查材料思想汇报
2014/10/02 职场文书
高中校园广播稿
2014/10/21 职场文书
Python快速实现一键抠图功能的全过程
2021/06/29 Python