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怎样调用MSSQL的存储过程
Oct 09 PHP
用php和MySql来与ODBC数据连接
Oct 09 PHP
防止用户利用PHP代码DOS造成用光网络带宽
Mar 01 PHP
php重定向的三种方法分享
Feb 22 PHP
PHP开发微信支付的代码分享
May 25 PHP
PHP中使用localhost连接Mysql不成功的解决方法
Aug 20 PHP
php中count获取多维数组长度的方法
Nov 03 PHP
PHP记录页面停留时间的方法
Mar 30 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
Dec 25 PHP
全面解析PHP面向对象的三大特征
Jun 10 PHP
PHP实现websocket通信的方法示例
Aug 28 PHP
php 中phar包的使用教程详解
Oct 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
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
php计算两个坐标(经度,纬度)之间距离的方法
2015/04/17 PHP
PHP实现的装箱算法示例
2018/06/23 PHP
PHP中的Iterator迭代对象属性详解
2019/04/12 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
2020/12/29 PHP
经验几则 推荐
2006/09/05 Javascript
javascript 得到变量类型的函数
2010/05/19 Javascript
JQERY limittext 插件0.2版(长内容限制显示)
2010/08/27 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
2014/07/02 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
jQuery操作基本控件方法实例分析
2015/12/31 Javascript
ajax的分页查询示例(不刷新页面)
2017/01/11 Javascript
js禁止浏览器的回退事件
2017/04/20 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
js实现详情页放大镜效果
2020/10/28 Javascript
vue表单验证之禁止input输入框输入空格
2020/12/03 Vue.js
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
Python做文本按行去重的实现方法
2016/10/19 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
Pyinstaller 打包exe教程及问题解决
2019/08/16 Python
使用python os模块复制文件到指定文件夹的方法
2019/08/22 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
css3新增颜色表示方式分享
2014/04/15 HTML / CSS
数据库什么时候应该被重组
2012/11/02 面试题
求职信的七个关键技巧
2014/02/05 职场文书
小学运动会入场式解说词
2014/02/18 职场文书
学校端午节活动方案
2014/08/23 职场文书
2016教师节问候语
2015/11/10 职场文书
远程教育学习心得体会
2016/01/23 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书