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 相关文章推荐
用Socket发送电子邮件
Oct 09 PHP
PHP VS ASP
Oct 09 PHP
PHP生成静态页面详解
Dec 05 PHP
php横向重复区域显示二法
Sep 25 PHP
PHP 数据结构 算法 三元组 Triplet
Jul 02 PHP
php 广告调用类代码(支持Flash调用)
Aug 11 PHP
php 注册时输入信息验证器的实现详解
Jul 05 PHP
phpmailer中文乱码问题的解决方法
Apr 22 PHP
PHP使用Mysql事务实例解析
Sep 08 PHP
php获取远程文件内容的函数
Nov 02 PHP
PHP 与 UTF-8 的最佳实践详细介绍
Jan 04 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
Feb 21 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 Class&amp;Object -- 解析PHP实现二叉树
2013/06/25 PHP
兼容ie6浏览器的php下载文件代码分享
2014/07/14 PHP
ThinkPHP上使用多说评论插件的方法
2014/10/31 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
PHP判断是否是微信打开,浏览器打开的方法
2018/03/14 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
2019/09/30 PHP
jQuery判断iframe中元素是否存在的方法
2013/05/11 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
jquery map方法使用示例
2014/04/23 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
JS+CSS实现下拉刷新/上拉加载插件
2017/03/31 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
使用webpack搭建vue项目实现脚手架功能
2019/03/15 Javascript
解决Layui中templet中a的onclick参数传递的问题
2019/09/20 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
vue 动态表单开发方法案例详解
2019/12/02 Javascript
一个月入门Python爬虫学习,轻松爬取大规模数据
2018/01/03 Python
Python 记录日志的灵活性和可配置性介绍
2018/02/27 Python
python3通过udp实现组播数据的发送和接收操作
2020/05/05 Python
Python selenium使用autoIT上传附件过程详解
2020/05/26 Python
CSS3感应鼠标的背景闪烁和图片缩放动画效果
2014/05/14 HTML / CSS
美国东北部户外服装和设备零售商:Eastern Mountain Sports
2016/10/05 全球购物
英国男士时尚购物网站:Stuarts London
2017/10/22 全球购物
Wiggle美国:英国骑行、跑步、游泳、铁人三项商店
2018/10/27 全球购物
比较一下entity bean和session bean
2013/12/27 面试题
怎样自定义一个异常类
2016/09/27 面试题
Servlet如何得到服务器的信息
2015/12/22 面试题
Delphi笔试题
2016/11/14 面试题
大专自我鉴定范文
2013/10/23 职场文书
技术总监管理岗位职责
2014/03/09 职场文书
中层干部竞聘演讲稿
2014/05/15 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
个人委托书范本汇总
2014/10/01 职场文书
2015年高中班主任工作总结
2015/04/30 职场文书
2015年建筑工作总结报告
2015/05/04 职场文书
七年级作文之下雨天
2019/12/23 职场文书