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 相关文章推荐
风格模板初级不完全修改教程
Oct 09 PHP
PHP 截取字符串函数整理(支持gb2312和utf-8)
Feb 16 PHP
收藏的PHP常用函数 推荐收藏保存
Feb 21 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
May 07 PHP
php4与php5的区别小结(配置异同)
Dec 20 PHP
header中Content-Disposition的作用与使用方法
Jun 13 PHP
php实现下载限制速度示例分享
Feb 13 PHP
通过dbi使用perl连接mysql数据库的方法
Apr 16 PHP
PHP中Restful api 错误提示返回值实现思路
Apr 12 PHP
php 从一个数组中随机的取出若干个不同的数实例
Dec 31 PHP
PHP实现简单登录界面
Oct 23 PHP
Laravel5.1 框架响应基本用法实例分析
Jan 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
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
2011/01/06 PHP
测试php函数的方法
2013/11/13 PHP
PHP中生成UUID自定义函数分享
2015/06/10 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
2016/09/26 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
PHP封装的分页类与简单用法示例
2019/02/25 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
JS 模态对话框和非模态对话框操作技巧汇总
2013/04/15 Javascript
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
jquery中用jsonp实现搜索框功能
2016/10/18 Javascript
详解vuex结合localstorage动态监听storage的变化
2018/05/03 Javascript
关于HTML5的data-*自定义属性的总结
2018/05/05 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
JSON基本语法及与JavaScript的异同实例分析
2019/01/04 Javascript
理解Python中的类与实例
2015/04/27 Python
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
2016/06/21 Python
PyCharm 常用快捷键和设置方法
2017/12/20 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
python实现粒子群算法
2020/10/15 Python
Python3压缩和解压缩实现代码
2021/03/01 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
Linux如何命名文件--使用文件名时应注意
2014/05/29 面试题
高中化学教学反思
2014/01/13 职场文书
党的群众路线教育实践活动对照检查材料(四风)
2014/09/27 职场文书
酒店采购员岗位职责
2015/04/03 职场文书
蓝天保卫战收官在即 :15行业将开展环保分级评价
2019/07/19 职场文书
SqlServer数据库远程连接案例教程
2021/07/15 SQL Server
Python装饰器详细介绍
2022/03/25 Python
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers