PHP导出Excel实例讲解


Posted in PHP onJanuary 24, 2016

本次实现PHP导出Excel文件使用的是PHP开源程序PHPExcel,部分关键代码分享给大家,具体内容如下

<?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;

注意:如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,代码类似如下:

查看代码打印

$str=mb_convert_encoding("gb2312","UTF-8",$str);

以上就是本文的全部内容,希望对大家的学习有所帮助。

PHP 相关文章推荐
关于php fread()使用技巧
Jan 22 PHP
php设计模式 State (状态模式)
Jun 26 PHP
PHP实现手机归属地查询API接口实现代码
Aug 27 PHP
深入理解curl类,可用于模拟get,post和curl下载
Jun 08 PHP
php+memcache实现的网站在线人数统计代码
Jul 04 PHP
PHP中创建图像并绘制文字的例子
Nov 19 PHP
php+mysql实现用户注册登陆的方法
Jan 03 PHP
php去除头尾空格的2种方法
Mar 16 PHP
php生成图片验证码
Jun 09 PHP
全新Mac配置PHP开发环境教程
Feb 03 PHP
CodeIgniter记录错误日志的方法全面总结
May 17 PHP
PHP实现常用排序算法的方法
Feb 05 PHP
PHP验证码生成原理和实现
Jan 24 #PHP
详解PHP对象的串行化与反串行化
Jan 24 #PHP
php上传图片获取路径及给表单字段赋值的方法
Jan 23 #PHP
高质量PHP代码的50个实用技巧必备(下)
Jan 22 #PHP
php使用timthumb生成缩略图的方法
Jan 22 #PHP
php session的锁和并发
Jan 22 #PHP
php5.4传引用时报错问题分析
Jan 22 #PHP
You might like
PHP获取本周所有日期或者最近七天所有日期的方法
2018/06/20 PHP
PHP实现关键字搜索后描红功能示例
2019/07/03 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
Jquery时间验证和转换工具小例子
2013/07/01 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
jquery scroll()区分横向纵向滚动条的方法
2014/04/04 Javascript
node.js中的console.assert方法使用说明
2014/12/10 Javascript
JS中的Replace方法使用经验分享
2015/05/20 Javascript
Ext JS动态加载JavaScript创建窗体的方法
2016/06/23 Javascript
详解javascript立即执行函数表达式IIFE
2017/02/13 Javascript
浅谈JS验证表单文本域输入空格的问题
2017/02/14 Javascript
使用vue构建一个上传图片表单
2017/07/04 Javascript
JavaScript 异步调用
2017/10/25 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
2018/02/08 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
2018/09/27 Javascript
vue: WebStorm设置快速编译运行的方法
2018/10/18 Javascript
vue-cli中vue本地实现跨域调试接口
2019/01/16 Javascript
详解vue-cli@2.x项目迁移日志
2019/06/06 Javascript
vue使用websocket的方法实例分析
2019/06/22 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
2019/09/01 Javascript
vue实现路由不变的情况下,刷新页面操作示例
2020/02/02 Javascript
python 寻找list中最大元素对应的索引方法
2018/06/28 Python
Linux下python制作名片示例
2018/07/20 Python
python 获取等间隔的数组实例
2019/07/04 Python
python基于celery实现异步任务周期任务定时任务
2019/12/30 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
python字典通过值反查键的实现(简洁写法)
2020/09/30 Python
python自动从arxiv下载paper的示例代码
2020/12/05 Python
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
群众路线教育实践活动对照检查材料思想汇报(副处级领导)
2014/10/04 职场文书
党员干部学习三严三实心得体会
2016/01/05 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书
mybatis 解决从列名到属性名的自动映射失败问题
2021/06/30 Java/Android
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python