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 相关文章推荐
轻松修复Discuz!数据库
May 03 PHP
php 3行代码的分页算法(求起始页和结束页)
Oct 21 PHP
UCenter中的一个可逆加密函数authcode函数代码
Jul 20 PHP
php foreach 参数强制类型转换的问题
Dec 10 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
Jun 28 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
May 05 PHP
PHP实现文件下载断点续传详解
Oct 15 PHP
php实现的日历程序
Jun 18 PHP
php开发时容易忘记的一些技术细节
Feb 03 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
Mar 14 PHP
PHP ADODB实现事务处理功能示例
May 25 PHP
PHP强制转化的形式整理
May 22 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数字游戏 计算24算法
2012/06/10 PHP
php设置编码格式的方法
2013/03/05 PHP
实例:尽可能写友好的Javascript代码
2006/10/09 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
javascript的console.log()用法小结
2012/05/31 Javascript
如何使用Jquery获取Form表单中被选中的radio值
2013/08/09 Javascript
深入理解javascript中defer的作用
2013/12/11 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
js实现tab选项卡切换功能
2017/01/13 Javascript
微信小程序实现人脸识别
2018/05/25 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
vue2.x集成百度UEditor富文本编辑器的方法
2018/09/21 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
2018/12/12 Javascript
express.js中间件说明详解
2019/03/19 Javascript
Python常用算法学习基础教程
2017/04/13 Python
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
Python快速排序算法实例分析
2017/11/29 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
2018/07/09 Python
Python tkinter实现日期选择器
2021/02/22 Python
中专生自我鉴定范文
2013/12/19 职场文书
珍珠鸟教学反思
2014/02/01 职场文书
搞笑创意广告语
2014/03/17 职场文书
群众路线教育实践活动学习笔记内容
2014/11/06 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
工艺技术员岗位职责
2015/02/04 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
预备党员介绍人意见
2015/06/01 职场文书
家长意见和建议怎么写
2015/06/04 职场文书
如何理解及使用Python闭包
2021/06/01 Python
浅谈MySQL中的六种日志
2022/03/23 MySQL
Python开发五子棋小游戏
2022/04/28 Python
python如何将mat文件转为png
2022/07/15 Python