php导入导出excel实例


Posted in PHP onOctober 25, 2013

这里实现的PHP导入导出excel功能用到的是开源PHPExcel,执行下面的操作之前请先下载该类库文件,官方网站:http://www.codeplex.com/PHPExcel,官网案例代码很多,导出pdf什么的都有,这里主要介绍PHP导入导出excel的功能,导出excel文件是office2007格式,同时兼容2003。

php导入导出excel实例

php导入excel
导入的excel文件的数据格式,截图如下:
下面是将该excel文件的数据导入到数据库的具体代码:

<?php
require_once 'Classes/PHPExcel.php';
require_once 'Classes/PHPExcel/IOFactory.php';
require_once 'Classes/PHPExcel/Reader/Excel5.php';
$objReader=PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format
$objPHPExcel=$objReader->load($file_url);//$file_url即Excel文件的路径
$sheet=$objPHPExcel->getSheet(0);//获取第一个工作表
$highestRow=$sheet->getHighestRow();//取得总行数
$highestColumn=$sheet->getHighestColumn(); //取得总列数
//循环读取excel文件,读取一条,插入一条
for($j=2;$j<=$highestRow;$j++){//从第一行开始读取数据
 $str='';
 for($k='A';$k<=$highestColumn;$k++){            //从A列读取数据
 //这种方法简单,但有不妥,以'\\'合并为数组,再分割\\为字段值插入到数据库,实测在excel中,如果某单元格的值包含了\\导入的数据会为空        
  $str.=$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue().'\\';//读取单元格
 }
 //explode:函数把字符串分割为数组。
 $strs=explode("\\",$str);
 $sql="INSERT INTO `".TB_PREFIX."business`(`username`,`password`,`company`,`prov`,`address`,`btime`,`phone`,`email`,`name`) VALUES (
 '{$strs[0]}',
 '{$strs[1]}',
 '{$strs[2]}',
 '{$strs[3]}',
 '{$strs[4]}',
 '{$strs[5]}',
 '{$strs[6]}',
 '{$strs[7]}',
 '{$strs[8]}')";
 $db->query($sql);//这里执行的是插入数据库操作
}
unlink($file_url); //删除excel文件
?>

php导出excel
下面直接放出本人总结的使用PHP导出Excel的部分调用代码。

<?php
error_reporting(E_ALL);
date_default_timezone_set('Asia/Shanghai');
require_once './Classes/PHPExcel.php';
$data=array(
 0=>array(
  'id'=>1001,
  'username'=>'张飞',
  'password'=>'123456',
  'address'=>'三国时高老庄250巷101室'
 ),
 1=>array(
  'id'=>1002,
  'username'=>'关羽',
  'password'=>'123456',
  'address'=>'三国时花果山'
 ),
 2=>array(
  'id'=>1003,
  'username'=>'曹操',
  'password'=>'123456',
  'address'=>'延安西路2055弄3号'
 ),
 3=>array(
  'id'=>1004,
  'username'=>'刘备',
  'password'=>'654321',
  'address'=>'愚园路188号3309室'
 )
);
$objPHPExcel=new PHPExcel();
$objPHPExcel->getProperties()->setCreator('https://3water.com')
        ->setLastModifiedBy('https://3water.com')
        ->setTitle('Office 2007 XLSX Document')
        ->setSubject('Office 2007 XLSX Document')
        ->setDescription('Document for Office 2007 XLSX, generated using PHP classes.')
        ->setKeywords('office 2007 openxml php')
        ->setCategory('Result file');
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1','ID')
            ->setCellValue('B1','用户名')
            ->setCellValue('C1','密码')
            ->setCellValue('D1','地址');
$i=2;   
foreach($data as $k=>$v){
 $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A'.$i,$v['id'])
            ->setCellValue('B'.$i,$v['username'])
            ->setCellValue('C'.$i,$v['password'])
            ->setCellValue('D'.$i,$v['address']);
 $i++;
}
$objPHPExcel->getActiveSheet()->setTitle('三年级2班');
$objPHPExcel->setActiveSheetIndex(0);
$filename=urlencode('学生信息统计表').'_'.date('Y-m-dHis');

/*
*生成xlsx文件
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$filename.'.xlsx"');
header('Cache-Control: max-age=0');
$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
*/
/*
*生成xls文件
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$filename.'.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
*/
$objWriter->save('php://output');
exit;
PHP 相关文章推荐
PHP 的 __FILE__ 常量
Jan 15 PHP
分享一下贝贝成长进度的php代码
Sep 14 PHP
获取PHP警告错误信息的解决方法
Jun 03 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
May 07 PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
Jun 27 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
Jun 30 PHP
PHP实现Javascript中的escape及unescape函数代码分享
Feb 10 PHP
php通过两层过滤获取留言内容的方法
Jul 11 PHP
php版微信公众平台之微信网页登陆授权示例
Sep 23 PHP
浅谈PHP中类和对象的相关函数
Apr 26 PHP
Yii2 中实现单点登录的方法
Mar 09 PHP
php设计模式之策略模式应用案例详解
Jun 17 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
Oct 25 #PHP
php获取目录所有文件并将结果保存到数组(实例)
Oct 25 #PHP
php中并发读写文件冲突的解决方案
Oct 25 #PHP
ajax返回值中有回车换行、空格的解决方法分享
Oct 24 #PHP
学习php分页代码实例
Oct 24 #PHP
获取URL文件名后缀
Oct 24 #PHP
关于php程序报date()警告的处理(date_default_timezone_set)
Oct 22 #PHP
You might like
一个可以找出源代码中所有中文的工具
2006/10/25 PHP
php实现mysql同步的实现方法
2009/10/21 PHP
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
PHP 7.4 新语法之箭头函数实例详解
2019/05/09 PHP
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
jQuery实现Tab选项卡切换效果简单演示
2015/11/23 Javascript
javascript HTML+CSS实现经典橙色导航菜单
2016/02/16 Javascript
理解javascript定时器中的单线程
2016/02/23 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
html5+CSS 实现禁止IOS长按复制粘贴功能
2016/12/28 Javascript
详谈$.data()的用法和作用
2017/02/13 Javascript
js以及jquery实现手风琴效果
2020/04/17 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
JS打印彩色菱形的实例代码
2018/08/15 Javascript
vue计算属性computed的使用方法示例
2019/03/13 Javascript
关于layui flow loading占位图的实现方法
2019/09/21 Javascript
js实现转动骰子模型
2019/10/24 Javascript
JS面向对象编程——ES6 中class的继承用法详解
2020/03/03 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
2020/07/14 Javascript
用Python编程实现语音控制电脑
2014/04/01 Python
Python中用于计算对数的log()方法
2015/05/15 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
2018/12/05 Python
Python基本数据结构与用法详解【列表、元组、集合、字典】
2019/03/23 Python
python中如何使用insert函数
2020/01/09 Python
Python3实现个位数字和十位数字对调, 其乘积不变
2020/05/03 Python
Python使用socket_TCP实现小文件下载功能
2020/10/09 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
Java面试笔试题大全
2016/11/23 面试题
应届大学生自荐信格式
2013/09/21 职场文书
2014年会演讲稿范文
2014/01/06 职场文书
思想作风整顿个人剖析材料
2014/10/06 职场文书
2014年政风行风评议工作总结
2014/10/21 职场文书
党支部季度考核意见
2015/06/02 职场文书
安全伴我行主题班会
2015/08/13 职场文书
Java 使用类型为Object的变量指向任意类型的对象
2022/04/13 Java/Android
一文解答什么是MySQL的回表
2022/08/05 MySQL