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发送邮件类代码附详细说明
Jul 10 PHP
php中理解print EOT分界符和echo EOT的用法区别小结
Feb 21 PHP
php中通过Ajax如何实现异步文件上传的代码实例
May 07 PHP
PHP的array_diff()函数在处理大数组时的效率问题
Nov 27 PHP
php提示undefined index的几种解决方法
May 21 PHP
PHP程序级守护进程的实现与优化的使用概述
May 02 PHP
php中运用http调用的GET和POST方法示例
Sep 29 PHP
PHP多线程之内部多线程实例分析
Mar 09 PHP
php中实现可以返回多个值的函数实例
Mar 21 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
Sep 13 PHP
Yii2第三方类库插件Imagine的安装和使用
Jul 06 PHP
laravel框架 laravel-admin上传图片到oss的方法
Oct 13 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
谈PHP生成静态页面分析 模板+缓存+写文件
2009/08/17 PHP
PHP使用range协议实现输出文件断点续传代码实例
2014/07/04 PHP
PHP简单获取视频预览图的方法
2015/03/12 PHP
php比较相似字符串的方法
2015/06/05 PHP
PHP开发Apache服务器配置
2015/07/15 PHP
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
JavaScript实现点击按钮切换网页背景色的方法
2015/10/17 Javascript
轻松5句话解决JavaScript的作用域
2016/07/15 Javascript
JS实现探测网站链接的方法【测试可用】
2016/11/08 Javascript
JS刷新父窗口的几种方式小结(推荐)
2016/11/09 Javascript
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
[42:27]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第三局
2016/03/05 DOTA
python基础教程之获取本机ip数据包示例
2014/02/10 Python
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
Python中的元类编程入门指引
2015/04/15 Python
Python 获取当前所在目录的方法详解
2017/08/02 Python
itchat接口使用示例
2017/10/23 Python
对Python3.6 IDLE常用快捷键介绍
2018/07/16 Python
python无限生成不重复(字母,数字,字符)组合的方法
2018/12/04 Python
Tensorflow进行多维矩阵的拆分与拼接实例
2020/02/07 Python
CSS3中利用animation属性创建雪花飘落特效
2014/05/14 HTML / CSS
台湾最大网路书店:博客来
2018/03/18 全球购物
New Balance法国官方网站:购买鞋子和服装
2019/09/01 全球购物
法国在线药房:Shop Pharmacie
2019/11/26 全球购物
Nayomi官网:沙特阿拉伯王国睡衣和内衣品牌
2020/12/19 全球购物
Juice Beauty官网:有机美容产品,护肤与化妆品
2020/06/13 全球购物
C语言中一个结构不能包含指向自己的指针吗
2012/05/25 面试题
汽车维修专业毕业生的求职信分享
2013/12/04 职场文书
行政部经理助理岗位职责
2014/06/15 职场文书
秋季运动会开幕词
2015/01/28 职场文书
好好学习保证书
2015/02/26 职场文书
2015年国培研修感言
2015/08/01 职场文书
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL