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 相关文章推荐
利用js调用后台php进行数据处理原码
Oct 09 PHP
SMARTY学习手记
Jan 04 PHP
php adodb分页实现代码
Mar 19 PHP
ajax php 实现写入数据库
Sep 02 PHP
php提示无法加载或mcrypt没有找到 PHP 扩展 mbstring解决办法
Mar 27 PHP
php密码生成类实例
Sep 24 PHP
smarty模板引擎中自定义函数的方法
Jan 22 PHP
DEDECMS首页调用图片集里的多张图片
Jun 05 PHP
Netbeans 8.2与PHP相关的新特性介绍
Oct 08 PHP
thinkPHP简单调用函数与类库的方法
Mar 15 PHP
php数组遍历类与用法示例
May 24 PHP
PHP基于ip2long实现IP转换整形
Dec 11 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
截获网站title标签之家内容的例子
2006/10/09 PHP
ADODB结合SMARTY使用~超级强
2006/11/25 PHP
php下实现伪 url 的超简单方法[转]
2007/09/24 PHP
php max_execution_time执行时间问题
2011/07/17 PHP
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
Laravel中如何轻松容易的输出完整的SQL语句
2020/07/26 PHP
无语,javascript居然支持中文(unicode)编程!
2007/04/12 Javascript
用JS控制回车事件的代码
2011/02/20 Javascript
使用javascript获取flash加载的百分比的实现代码
2011/05/25 Javascript
网页前端优化之滚动延时加载图片示例
2013/07/13 Javascript
JavaScript表单验证实例之验证表单项是否为空
2016/01/10 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
Angularjs在初始化未完毕时出现闪烁问题的解决方法分析
2016/08/05 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
JS实现的简单tab切换功能完整示例
2019/06/20 Javascript
element-ui table行点击获取行索引(index)并利用索引更换行顺序
2020/02/27 Javascript
[10:42]Team Liquid Vs Newbee
2018/06/07 DOTA
Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
2015/03/06 Python
详解Python编程中基本的数学计算使用
2016/02/04 Python
itchat接口使用示例
2017/10/23 Python
pandas带有重复索引操作方法
2018/06/08 Python
python调用tcpdump抓包过滤的方法
2018/07/18 Python
python 堆和优先队列的使用详解
2019/03/05 Python
Python实现密码薄文件读写操作
2019/12/16 Python
Python爬虫回测股票的实例讲解
2021/01/22 Python
python中用ggplot绘制画图实例讲解
2021/01/26 Python
python爬虫线程池案例详解(梨视频短视频爬取)
2021/02/20 Python
css3 响应式媒体查询的示例代码
2019/09/25 HTML / CSS
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
荷兰DOD药房中文官网:DeOnlineDrogist
2020/12/27 全球购物
班级聚会策划书
2014/01/16 职场文书
园艺师求职信
2014/04/27 职场文书
道士塔读书笔记
2015/06/30 职场文书
关于分班的感言
2015/08/04 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书