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数组
Oct 09 PHP
实用函数8
Nov 08 PHP
PHP 分页类(模仿google)-面试题目解答
Sep 13 PHP
php学习之 数组声明
Jun 09 PHP
php单例模式示例分享
Feb 12 PHP
PHP获取远程图片并保存到本地的方法
May 12 PHP
PHP模板引擎smarty详细介绍
May 26 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
Jan 07 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
Apr 24 PHP
关于Laravel-admin的基础用法总结和自定义model详解
Oct 08 PHP
PHP实现简单登录界面
Oct 23 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 文件上传功能实现代码
2009/06/24 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
2013/10/25 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
Laravel网站打开速度优化的方法汇总
2017/07/16 PHP
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
javascript 单例/单体模式(Singleton)
2011/04/07 Javascript
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
JavaScript中pop()方法的使用教程
2015/06/09 Javascript
jQuery实现鼠标选文字发新浪微博的方法
2016/04/02 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
tab栏切换原理
2017/03/22 Javascript
AngularJS中重新加载当前路由页面的方法
2018/03/09 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
JS实现json对象数组按对象属性排序操作示例
2018/05/18 Javascript
JS使用队列对数组排列,基数排序算法示例
2019/03/02 Javascript
基于mpvue的简单弹窗组件mptoast使用详解
2019/08/02 Javascript
如何对react hooks进行单元测试的方法
2019/08/14 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
在Python的Flask框架下收发电子邮件的教程
2015/04/21 Python
Django 前后台的数据传递的方法
2017/08/08 Python
详谈python在windows中的文件路径问题
2018/04/28 Python
python实现RabbitMQ的消息队列的示例代码
2018/11/08 Python
对python xlrd读取datetime类型数据的方法详解
2018/12/26 Python
python tkinter组件摆放方式详解
2019/09/16 Python
Python监控服务器实用工具psutil使用解析
2019/12/19 Python
python 操作hive pyhs2方式
2019/12/21 Python
高一生物教学反思
2014/01/17 职场文书
《临死前的严监生》教学反思
2014/02/13 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
赔偿协议书
2015/01/27 职场文书
国庆节慰问信
2015/02/15 职场文书
redis配置文件中常用配置详解
2021/04/14 Redis
oracle连接ODBC sqlserver数据源的详细步骤
2021/07/25 Oracle