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 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
Jan 30 PHP
php反弹shell实现代码
Apr 22 PHP
PHP加速 eAccelerator配置和使用指南
Jun 05 PHP
PHP学习 变量使用总结
Mar 24 PHP
php使用curl和正则表达式抓取网页数据示例
Apr 13 PHP
php实现两个数组相加的方法
Feb 17 PHP
PHP递归遍历指定目录的文件并统计文件数量的方法
Mar 24 PHP
php生成高清缩略图实例详解
Dec 07 PHP
PHP如何实现跨域
May 30 PHP
PHP简单检测网址是否能够正常打开的方法
Sep 04 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
php实现支付宝当面付(扫码支付)功能
May 30 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
PHP4和PHP5性能测试和对比 测试代码与环境
2007/08/17 PHP
在PHP中养成7个面向对象的好习惯
2010/01/28 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
2015/04/03 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
2016/12/05 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
javascript实现图片切换的幻灯片效果源代码
2012/12/12 Javascript
JS 实现导航栏悬停效果
2013/09/23 Javascript
js自动查找select下拉的菜单并选择(示例代码)
2014/02/26 Javascript
javascript面向对象程序设计高级特性经典教程(值得收藏)
2016/05/19 Javascript
AngularJs表单验证实例详解
2016/05/30 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
Jil,高效的json序列化和反序列化库
2017/02/15 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
详解webpack提取第三方库的正确姿势
2017/12/22 Javascript
vue debug 二种方法
2018/09/16 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
2018/10/30 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
vue动态注册组件实例代码详解
2019/05/30 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
2020/04/25 Javascript
python socket 超时设置 errno 10054
2014/07/01 Python
Python实现从百度API获取天气的方法
2015/03/11 Python
从django的中间件直接返回请求的方法
2018/05/30 Python
深入了解Django View(视图系统)
2019/07/23 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
python Autopep8实现按PEP8风格自动排版Python代码
2021/03/02 Python
Html5移动端适配IphoneX等机型的方法
2019/06/25 HTML / CSS
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
戴尔新加坡官网:Dell Singapore
2020/12/13 全球购物
护士在校生自荐信
2014/02/01 职场文书
《会变的花树叶》教学反思
2014/02/10 职场文书
会计学自荐信
2014/06/03 职场文书
征兵宣传标语
2014/06/20 职场文书
个人查摆剖析材料
2014/10/16 职场文书
党员年终个人总结
2015/02/14 职场文书
奖励通知
2015/04/22 职场文书