0

0

PHPEXCEL的用法与简介

php中文网

php中文网

发布时间:2016-05-27 08:33:59

|

1859人浏览过

|

来源于php中文网

原创

phpexcel是一个用来生成excel的php插件,他可以很方便的对excel数据进行操作,如:生成excel,修改excel数据等等.

一、PHPEXCEL简介

PHPEXCEL提供了一系列的API,能够解析与生成excel,pdf之类的文档.

PHPEXCEL虽然强大,不过使用起来相对有些繁锁,如果需要输出较为复杂格式时,是一个不错的选择,可以到官方下载到源码.

二、PHPEXCEL部分函数

立即学习PHP免费学习笔记(深入)”;

设置当前的工作簿,返回该工作簿对象:

$excelSheet = $excel->setActiveSheetIndex(0);

合并单元格,返回该单元格对象,以下示例即合并A列第一行与第二行所在单元格:

$excelSheet->mergeCells('A1:A2');

设置单元格的值,参数:单元格名称,值:

$excelSheet->setCellValue('A1', '字符串内容'); 
$excelSheet->setCellValue('A2', 26); //数值  
$excelSheet->setCellValue('A3', true); //布尔值  
$excelSheet->setCellValue('A4', '=SUM(A2:A2)'); //公式

phpexcel用法介绍,代码如下:

include 'PHPExcel.php'; 
include 'PHPExcel/Writer/Excel2007.php'; 
//或者include 'PHPExcel/Writer/Excel5.php'; 用于输出.xls的

创建一个excel 

$objPHPExcel = new PHPExcel(); 

保存excel–2007格式 

芝士饼
芝士饼

芝士饼是一个一站式AI原生应用开发平台,简单几步即可完成应用的创建与发布。

下载

$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); 

//或者$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); 非2007格式 

$objWriter->save("xxx.xlsx"); 

直接输出到浏览器 

$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); 
header("Pragma: public"); 
header("Expires: 0"); 
header("Cache-Control:must-revalidate, post-check=0, pre-check=0"); 
header("Content-Type:application/force-download"); 
header("Content-Type:application/vnd.ms-execl"); 
header("Content-Type:application/octet-stream"); 
header("Content-Type:application/download");; 
header('Content-Disposition:attachment;filename="resume.xls"'); 
header("Content-Transfer-Encoding:binary"); 
$objWriter->save('php://output');

 

––––––––––––––––––––––––––––––––––––––– 

设置excel的属性: 

<?php
创建人 
  $objPHPExcel->getProperties()->setCreator("Maarten Balliauw"); 
  最后修改人 
  $objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw"); 
  标题 
  $objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document"); 
  题目 
  $objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document"); 
  描述 
  $objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes."); 
  关键字 
  $objPHPExcel->getProperties()->setKeywords("office 2007 openxml php"); 
  种类 
  $objPHPExcel->getProperties()->setCategory("Test result file"); 
  ––––––––––––––––––––––––––––––––––––––– 
  设置当前的sheet 
  $objPHPExcel->setActiveSheetIndex(0); 
  设置sheet的name 
  $objPHPExcel->getActiveSheet()->setTitle('Simple'); 
  设置单元格的值 
  $objPHPExcel->getActiveSheet()->setCellValue("A1", 'String'); 
  $objPHPExcel->getActiveSheet()->setCellValue("A2", 12); 
  $objPHPExcel->getActiveSheet()->setCellValue("A3", true); 
  $objPHPExcel->getActiveSheet()->setCellValue("C5", '=SUM(C2:C4)'); 
  $objPHPExcel->getActiveSheet()->setCellValue("B8", '=MIN(B2:C5)'); 
  合并单元格 
  $objPHPExcel->getActiveSheet()->mergeCells("A18:E22"); 
  分离单元格 
  $objPHPExcel->getActiveSheet()->unmergeCells("A28:B28");
?>

三、PHPEXCEL举例应用

整个代码如下,值得注意的是表头用了$orderCellData记录了每个商户编号的顺序,为了在表体把对应的数据取出,代码如下:

<?php
require_once '../../../libs/PHPExcel/Classes/PHPExcel.php';
require_once '../../../libs/PHPExcel/Classes/PHPExcel/Writer/Excel5.php';
include_once '../../../libs/PHPExcel/Classes/PHPExcel/IOFactory.php';
include '../common/config.php';
// 创建一个处理对象实例(此对象对于2003 2007是相同的)
$objExcel = new PHPExcel();
//设置属性(这段代码无关紧要,其中的内容可以替换为你需要的)
$objExcel->getProperties()->setCreator("office 2003 excel");
$objExcel->getProperties()->setLastModifiedBy("office 2003 excel");
$objExcel->getProperties()->setTitle("Office 2003 XLS Test Document");
$objExcel->getProperties()->setSubject("Office 2003 XLS Test Document");
$objExcel->getProperties()->setDescription("Test document for Office 2003 XLS, generated using PHP classes.");
$objExcel->getProperties()->setKeywords("office 2003 openxml php");
$objExcel->getProperties()->setCategory("Test result file");
//开始处理数据(索引从0开始)
$objExcel->setActiveSheetIndex(0);
$conn = mssql_connect($config['mssql']['host'], $config['mssql']['user'], $config['mssql']['password']);
mssql_select_db($config['mssql']['dbname'], $conn);
$tm = $_REQUEST['tm'];
$sql = "exec HNow05_getTTSpace '','" . $tm . "','',1";
$sql = mb_convert_encoding($sql, 'GBK', 'UTF-8');
$res = mssql_query($sql);
$i = 0;
$k = array(
    '站码',
    '站名',
    '河系',
    '来报时间',
    '水位',
    '水势'
);
$count = count($k);
$arrs = array(
    'A',
    'B',
    'C',
    'D',
    'E',
    'F'
);
//添加表头
for ($i = 0; $i < $count; $i++) {
    $objExcel->getActiveSheet()->setCellValue($arrs[$i] . "1", "$k[$i]");
}
/*--------从数据库读取数据-------*/
$i = 0;
while ($arr = mssql_fetch_array($res)) {
    $stcd = $arr["STCD"];
    $stnm = $arr["STNM"];
    $rvnm = $arr["RVNM"];
    $tm = $arr["TM"];
    $tdz = $arr["TDZ"];
    $tdptn = $arr["TDPTN"];
    if ($tdptn == '6') {
        $tdptn = '平';
    } else if ($tdptn == '5') {
        $tdptn = '涨';
    } else if ($tdptn == '4') {
        $tdptn = '落';
    }
    $u1 = $i + 2;
    $stnm = iconv("GBK", "utf-8", $stnm);
    $rvnm = iconv("GBK", "utf-8", $rvnm);
    $tm = iconv("GBK", "utf-8", $tm);
    /*----------写入内容-------------*/
    $objExcel->getActiveSheet()->setCellValue('a' . $u1, "$stcd");
    $objExcel->getActiveSheet()->setCellValue('b' . $u1, "$stnm");
    $objExcel->getActiveSheet()->setCellValue('c' . $u1, "$rvnm");
    $objExcel->getActiveSheet()->setCellValue('d' . $u1, "$tm");
    $objExcel->getActiveSheet()->setCellValue('e' . $u1, "$tdz");
    $objExcel->getActiveSheet()->setCellValue('f' . $u1, "$tdptn");
    $i++;
}
/*----------设置单元格边框和颜色-------------*/
$rows = mssql_num_rows($res);
for ($i = 0; $i < ($rows + 1); $i++) {
    for ($j = 0; $j < $count; $j++) {
        $a = $i + 1;
        $objExcel->getActiveSheet()->getStyle($arrs[$j] . $a)->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
        $objExcel->getActiveSheet()->getStyle($arrs[$j] . $a)->getBorders()->getAllBorders()->getColor()->setARGB('FF00BBcc');
        //水平居中
        $objExcel->getActiveSheet()->getStyle($arrs[$j] . $a)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    }
}
// 高置列的宽度
$objExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
$objExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15);
$objExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);
$objExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);
$objExcel->getActiveSheet()->getColumnDimension('E')->setWidth(10);
$objExcel->getActiveSheet()->getColumnDimension('F')->setWidth(10);
// 设置页眉和页脚。如果没有不同的标题奇数/即使是使用单头假定.
$objExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&BPersonal cash register&RPrinted on &D');
$objExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objExcel->getProperties()->getTitle() . '&RPage &P of &N');
// 设置页方向和规模
$objExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT);
$objExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
// 重命名表
$objExcel->getActiveSheet()->setTitle('实时潮汐情况');
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objExcel->setActiveSheetIndex(0);
// Redirect output to a client's web browser (Excel5)保存为excel2003格式
//设置Excel的名字
$excelName = '实时潮汐情况(' . $tm . ')';
//$excelName = 'Excel_'.date("YmdHis");
header('Content-Type: application/vnd.ms-excel');
header('Cache-Control: max-age=0');
header('Content-Disposition: attachment; filename=' . iconv("utf-8", "GBK", $excelName) . '.xls');
$objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel5');
$objWriter->save('php://output');
exit;
?>


教程地址:

欢迎转载!但请带上文章地址^^

WPS零基础入门到精通全套教程!
WPS零基础入门到精通全套教程!

全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

463

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

135

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

64

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

20

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

26

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

29

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

14

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

524

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

53

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
C++教程
C++教程

共115课时 | 18.3万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

微信小程序开发之API篇
微信小程序开发之API篇

共15课时 | 1.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号