PHPExcel的使用小结,不够全面,只是应对当前我用到的地方做了笔记,日后再有新的需求还会随时修改
时间:2019-10-18
本文章向大家介绍PHPExcel的使用小结,不够全面,只是应对当前我用到的地方做了笔记,日后再有新的需求还会随时修改,主要包括PHPExcel的使用小结,不够全面,只是应对当前我用到的地方做了笔记,日后再有新的需求还会随时修改使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
首先,用的thinkphp5.0框架,在项目根目录下composer下载PHPExcel;
composer require phpoffice/phpexcel
然后在控制器中直接use就可以了,简单的流程图如下:
<?php namespace app\index\controller; use think\Controller; use think\Db; use PHPExcel_IOFactory; use PHPExcel; class User extends Controller { public function excel(){ $data = Db::name('shop_cart')->where('phone','15555555555')->select(); /** *第一步:实例化PHPExcel类 等同于在桌面上新建一个Excel表格 **/ $objPHPExcel = new PHPExcel();// /** *第二步:获得当前活动sheet的操作对象 **/ $objSheet = $objPHPExcel->getActiveSheet();// /** *第三步:给当前活动sheet设置名字 **/ $objSheet->setTitle('worksheet');// /** *第四步:向单元格内插入内容 **/ $objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//设置默认水平居中 $objPHPExcel->getDefaultStyle()->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);//设置默认垂直居中 $obSheet->getDefaultStyle()->getFont()->setSize(11);//设置默认字体大小 $obSheet->getDefaultRowDimension()->setRowHeight(30);//设置默认高度30 $obSheet->mergeCells("A1:N2");//合并单元格 $obSheet->getStyle('A1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);//设置A1水平右对齐 $obSheet->getStyle('A'.$j)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//设置A1水平居中 $obSheet->getStyle('A1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT);//设置A1水平左对齐 $obSheet->getStyle('A1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);//设置A1垂直居中 $obSheet->getStyle('A1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_TOP);//设置A1垂直靠上 $obSheet->getStyle('A1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_BOTTOM);//应该是bottom吧,这个没用到,网上也没找到,自己也没做测试,哈哈,就先这样吧 $objSheet-> getStyle('A1') -> getFont() -> setSize(14);//设置单元格的字体大小 $objSheet->getStyle("A1")->getFont()->setBold(true); //设置单元格字体为粗体 $objSheet-> getStyle('A4')->getFont()->getColor()->setRGB('ff0000');//设置单元格字体颜色 $objSheet->getStyle('C')->getAlignment()->setWrapText(True);//设置自动换行 $objSheet->getRowDimension('1')->setRowHeight(45);//单独设置一行的高度 $objSheet->getColumnDimension('B')->setWidth(21);//设置单元格宽度 $objSheet->setCellValue("A3","销售合同-附件(产品清单)");//向单元格内添加内容 /** *向单元格中插入照片 **/ $objDrawing = new \PHPExcel_Worksheet_Drawing();//实例化插入图片类 $objDrawing->setPath('./5d282e5928206.png');//设置图片路径 $objDrawing->setHeight(108);//图片高度 $objDrawing->setWidth(312); //照片宽度 $objDrawing->setCoordinates("A1");//图片插入的位置 $objDrawing->setOffsetX(12);//图片X轴的偏移量 $objDrawing->setOffsetY(12);//图片Y轴的偏移量 $objDrawing->setWorksheet($objSheet);//不知道干啥的,反正不写这一步图片就插不进去 $objSheet->setCellValue("A1","xxxxxxxxxxx\n xxxxxxxxxx");//如果要自己在单元格内打断文字的话加个\n,然后加上下面那句,就能打断文字了 $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setWrapText(true);//设置自动换行,与上面的呼应 /** *设置表格中的单元格全部带边框 **/ $styleThinBlackBorderOutline = array( 'borders' => array( 'allborders' => array( //设置全部边框 'style' => \PHPExcel_Style_Border::BORDER_THIN //粗的是thick ), ), ); $objPHPExcel->getActiveSheet()->getStyle( 'A1:N21')->applyFromArray($styleThinBlackBorderOutline); /** *第五步:设置header头,包括设置Excel文件格式,是Excel2005还是Excel2007,文件名等等 **/ ob_end_clean();//清除缓冲区,避免乱码 header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="'.date('Y-m-d',time()).'.xlsx"'); header('Cache-Control: max-age=0'); /** *第六步:将上面做的表格内容写入到Excel文件中,并设置文件格式 **/ $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007'); /** *第七步:使用户下载 *一定记得要写上最后那一句exit,不然导出的文件打开时会提示错误 **/ $objWriter->save('php://output'); exit; } }
当然,写的不全,也不可能记住,以后再用到的时候再来看的吧,谁叫咱不会英语看不懂手册呢。
其实这个也不难学,主要是做的时候挺麻烦的,嗯。。。就这些吧
原文地址:https://www.cnblogs.com/dayin1/p/11698168.html
- 前端MVC Vue2学习总结(六)——axios与跨域HTTP请求、Lodash工具库
- spring之config.xml完整版示例
- 前端MVC Vue2学习总结(五)——表单输入绑定、组件
- 【HCTF】2017部分Web出题思路详解
- 前端MVC Vue2学习总结(四)——条件渲染、列表渲染、事件处理器
- 如何移除Android应用广告
- 前端MVC Vue2学习总结(三)——模板语法、过滤器、计算属性、观察者、Class 与 Style 绑定
- 前端MVC Vue2学习总结(二)——Vue的实例、生命周期与Vue脚手架(vue-cli)
- hive具体操作
- hive中配置hwi
- 从零开始内网安全渗透学习
- hive启动后相关操作
- 开源API测试工具 Hitchhiker v0.10 - 中文版
- 强大的API测试工具Hitchhiker v0.9 基于UI的断言测试,回顾2017
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- 如何基于 Electron 开发跨终端的应用
- 孟德尔随机化系列1
- R语言入门之直方图与密度曲线
- R语言入门之独立性检验
- R语言入门之基本绘图
- 傅里叶级数理论详讲&实例应用
- R语言入门之点图和条形图
- Zabbix MTR 链路质量检测 主备链路监控
- R语言入门之t检验(t test)
- R语言入门之饼图
- 加速Spark编译
- 自定义方便kubectl中pods的管理
- R语言入门之切尾均值(trimmed mean)与绝对中位差(median absolute deviation,mad)
- 盘一盘 Python 特别篇 20 - SciPy 稀疏矩阵
- Spark 3.0.0-SNAPSHOT Access Kerberized HDFS