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创建动态图像
Oct 09 PHP
定制404错误页面,并发信给管理员的程序
Oct 09 PHP
兼容PHP5的PHP目录管理函数库
Jul 10 PHP
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
Dec 29 PHP
php继承的一个应用
Sep 06 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
Nov 14 PHP
php判断是否为json格式的方法
Mar 04 PHP
php利用cookie实现自动登录的方法
Dec 10 PHP
php插入排序法实现数组排序实例
Feb 16 PHP
php生成curl命令行的方法
Dec 14 PHP
在laravel中实现ORM模型使用第二个数据库设置
Oct 24 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
Apr 04 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
第4章 数据处理-php字符串的处理-郑阿奇(续)
2011/07/04 PHP
phpize的深入理解
2013/06/03 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
2013/08/15 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
2016/03/20 PHP
javascript 学习之旅 (3)
2009/02/05 Javascript
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
Javascript学习笔记5 类和对象
2010/01/11 Javascript
JQuery Tips相关(1)----关于$.Ready()
2014/08/14 Javascript
jQuery中insertAfter()方法用法实例
2015/01/08 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
jQuery图片旋转插件jQueryRotate.js用法实例(附demo下载)
2016/01/21 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
2016/11/07 Javascript
MvcPager分页控件 适用于Bootstrap
2017/06/03 Javascript
React BootStrap用户体验框架快速上手
2018/03/06 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
2020/10/31 Javascript
vue+Element-ui实现分页效果
2020/11/15 Javascript
[02:07]2017国际邀请赛中国区预选赛直邀战队前瞻
2017/06/23 DOTA
python实现中文转换url编码的方法
2016/06/14 Python
python3.7 使用pymssql往sqlserver插入数据的方法
2019/07/08 Python
python项目对接钉钉SDK的实现
2019/07/15 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
Django REST framework内置路由用法
2019/07/26 Python
Python class的继承方法代码实例
2020/02/14 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
通过一张图教会你CSS3倒影的实现
2017/09/26 HTML / CSS
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
亿企通软件测试面试题
2012/04/10 面试题
财务信息服务专业自荐书范文
2014/02/08 职场文书
商业房地产广告语
2014/03/13 职场文书
2014年公务员个人工作总结
2014/11/22 职场文书
幼儿园老师新年寄语
2015/08/17 职场文书
幼儿园家长心得体会
2016/01/21 职场文书
Golang并发操作中常见的读写锁详析
2021/08/30 Golang
php png失真的原因及解决办法
2021/10/24 PHP