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 相关文章推荐
Discuz板块横排显示图片的实现方法
May 28 PHP
PHP语言中global和$GLOBALS[]的分析 之二
Feb 02 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
Jul 01 PHP
php json_encode()函数返回json数据实例代码
Oct 10 PHP
PHP速成大法
Jan 30 PHP
ThinkPHP静态缓存简单配置和使用方法详解
Mar 23 PHP
PHP错误和异常处理功能模块示例
Nov 12 PHP
LAMP环境使用Composer安装Laravel的方法
Mar 25 PHP
PHP实现中国公民身份证号码有效性验证示例代码
May 03 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 PHP
PHP yield关键字功能与用法分析
Jan 03 PHP
php7中停止php-fpm服务的方法详解
May 09 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
php入门学习知识点五 关于php数组的几个基本操作
2011/07/14 PHP
前端必学之PHP语法基础
2016/01/01 PHP
PHP多种序列化/反序列化的方法详解
2017/06/23 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
js中的escape及unescape函数的php实现代码
2007/09/04 Javascript
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
2012/10/11 Javascript
JS正则中的RegExp对象对象
2012/11/07 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
2014/02/27 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
jQuery判断元素是否显示 是否隐藏的简单实现代码
2016/05/19 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
JS实现简单的点赞与踩功能示例
2018/12/05 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
原生JavaScript实现刮刮乐
2020/09/29 Javascript
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
Python机器学习之SVM支持向量机
2017/12/27 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
python-opencv颜色提取分割方法
2018/12/08 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
Python-jenkins 获取job构建信息方式
2020/05/12 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
HTML5实现桌面通知 提示功能
2017/10/11 HTML / CSS
canvas 阴影和图形变换的示例代码
2018/01/02 HTML / CSS
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
Miller Harris官网:英国小众香水品牌
2020/09/24 全球购物
限量版运动鞋和街头服饰:TheDrop
2020/09/06 全球购物
投标保密承诺书
2014/05/19 职场文书
技术支持岗位职责
2015/02/13 职场文书
vue完美实现el-table列宽自适应
2021/05/08 Vue.js