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 相关文章推荐
模拟OICQ的实现思路和核心程序(二)
Oct 09 PHP
php 设计模式之 工厂模式
Dec 19 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
May 14 PHP
写出高质量的PHP程序
Feb 04 PHP
PHP读取xml方法介绍
Jan 12 PHP
php实现求相对时间函数
Jun 15 PHP
Thinkphp和onethink实现微信支付插件
Apr 13 PHP
php中array_unshift()修改数组key注意事项分析
May 16 PHP
PHP中spl_autoload_register()函数用法实例详解
Jul 18 PHP
Yii框架弹出框功能示例
Jan 07 PHP
PHP验证类的封装与使用方法详解
Jan 10 PHP
Laravel框架实现超简单的分页效果示例
Feb 08 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
在WIN98下以apache模块方式安装php
2006/10/09 PHP
PHP完整的日历类(CLASS)
2006/11/27 PHP
PHP array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
PHP设计模式之代理模式的深入解析
2013/06/13 PHP
javascript显示隐藏层比较不错的方法分析
2008/09/30 Javascript
九种js弹出对话框的方法总结
2013/03/12 Javascript
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
javascript实现链接单选效果的方法
2015/05/13 Javascript
jQuery判断多个input file 都不能为空的例子
2015/06/23 Javascript
js操作table元素实现表格行列新增、删除技巧总结
2015/11/18 Javascript
js实现上一页下一页的效果【附代码】
2016/03/10 Javascript
Node.js的Mongodb使用实例
2016/12/30 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
JavaScript常用数学函数用法示例
2018/05/14 Javascript
Vue实现日历小插件
2019/06/26 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
2019/11/07 Javascript
vue.js的状态管理vuex中store的使用详解
2019/11/08 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
python模拟enum枚举类型的方法小结
2015/04/30 Python
Python中join函数简单代码示例
2018/01/09 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
2020/02/26 Python
Python是怎样处理json模块的
2020/07/16 Python
运行时异常与一般异常有何异同?
2014/01/05 面试题
工会工作先进事迹
2014/08/18 职场文书
计划生育诚信协议书
2014/11/02 职场文书
2014工程部年度工作总结
2014/12/17 职场文书
员工辞职信范文
2015/03/02 职场文书
给下属加薪申请报告
2015/05/15 职场文书
不同意离婚答辩状
2015/05/22 职场文书
vue实现同时设置多个倒计时
2021/05/20 Vue.js
Springboot如何同时装配两个相同类型数据库
2021/11/17 Java/Android
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python
Tomcat弱口令复现及利用
2022/05/06 Servers