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 相关文章推荐
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
Apr 23 PHP
sphinx增量索引的一个问题
Jun 14 PHP
PHP 观察者模式的实现代码
May 10 PHP
ThinkPHP应用模式扩展详解
Jul 16 PHP
PHP中unset,array_splice删除数组中元素的区别
Jul 28 PHP
php获取URL中带#号等特殊符号参数的解决方法
Sep 02 PHP
php中count获取多维数组长度的方法
Nov 03 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
Oct 19 PHP
PHP实现统计在线人数功能示例
Oct 15 PHP
php使用PDO获取结果集的方法
Feb 16 PHP
PHP获取当前日期及本周一是几月几号的方法
Mar 28 PHP
50个优秀经典PHP算法大集合 附源码
Aug 26 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
Terran剧情介绍
2020/03/14 星际争霸
锁定年轻人的双倍活力 星巴克推出星倍醇即饮浓咖啡
2021/03/03 咖啡文化
php 格式化数字的时候注意数字的范围
2010/04/13 PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
php读取文件内容的几种方法详解
2013/06/26 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
2017/11/08 PHP
Laravel核心解读之异常处理的实践过程
2019/02/24 PHP
Array.prototype 的泛型应用分析
2010/04/30 Javascript
js防止DIV布局滚动时闪动的解决方法
2014/10/30 Javascript
js与jquery回车提交的方法
2015/02/03 Javascript
JavaScript中setUTCFullYear()方法的使用简介
2015/06/12 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
html+javascript+bootstrap实现层级多选框全层全选和多选功能
2017/03/09 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
nodejs入门教程四:URL相关模块用法分析
2017/04/24 NodeJs
Angular2.0/4.0 使用Echarts图表的示例代码
2017/12/07 Javascript
JavaScript中arguments和this对象用法分析
2018/08/08 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
2019/06/27 Javascript
Python中的map、reduce和filter浅析
2014/04/26 Python
利用Tkinter和matplotlib两种方式画饼状图的实例
2017/11/06 Python
Anaconda下配置python+opencv+contribx的实例讲解
2018/08/06 Python
对python实现合并两个排序链表的方法详解
2019/01/23 Python
Python File(文件) 方法整理
2019/02/18 Python
Python2 Selenium元素定位的实现(8种)
2019/02/25 Python
python之PyQt按钮右键菜单功能的实现代码
2019/08/17 Python
解决Django中checkbox复选框的传值问题
2020/03/31 Python
解决django的template中如果无法引用MEDIA_URL问题
2020/04/07 Python
Python操作Jira库常用方法解析
2020/04/10 Python
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
全国道德模范事迹
2014/02/01 职场文书
医德医风自我评价
2014/09/19 职场文书
安全生产月标语
2014/10/07 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
浅谈Go语言多态的实现与interface使用
2021/06/16 Golang
一篇文章带你掌握SQLite3基本用法
2022/06/14 数据库