1.你的先下以一个类的扩展PHPEXcel.php

(https://codeload.github.com/PHPOffice/PHPExcel/zip/1.8),这个时候放的位置可有讲究了,此处附图

并参考Tp5在线手册中的关于扩展类部分(https://www.kancloud.cn/manual/thinkphp5/177200;这个引用第三方类库显示放在extends文件夹下面,然后利用usethink\Loader; 引入文件,

此时还没有完,你还需要手动引入里面的类文件

//手动引入PHPExcel.php

Loader::import('PHPExcel.Classes.PHPExcel');

//引入IOFactory.php 文件里面的PHPExcel_IOFactory这个类

Loader::import('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');

$obj = new \PHPExcel();

这样PHPEXcel.php才会生效。(这只是第一步,也是关键一步)

2.进行数据表的导出

//导出数据

function exportExcel($title=array(), $data=array(), $fileName, $savePath, $isDown){

//手动引入PHPExcel.php

Loader::import('PHPExcel.Classes.PHPExcel');

//引入IOFactory.php 文件里面的PHPExcel_IOFactory这个类

Loader::import('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');

$obj = new \PHPExcel();

//横向单元格标识

$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');

$obj->getActiveSheet(0)->setTitle('gaikuang_workpiece'); //设置sheet名称

$_row = 1; //设置纵向单元格标识

$_len=3; //设置横向单元格标识

if($title){

$_cnt = count($title);

$obj->getActiveSheet(0)->mergeCells('i'.$_row.':'.'k'.$_row); //合并单元格

$obj->setActiveSheetIndex(0)->setCellValue('i'.$_row, '数据导出:'.date('Y-m-d H:i:s')); //设置合并后的单元格内容

$_row++;

$i = 0;

//设置列标题开始的位置

foreach($title AS $v){

$obj->setActiveSheetIndex(0)->setCellValue($cellName[$i].$_row, $v);

$i++;

}

$_row++;

}

//填写数据

if($data){

$i = 0;

foreach($data AS $_v){

$j = 0;

foreach($_v AS $_cell){

$obj->getActiveSheet(0)->setCellValue($cellName[$j] . ($i+$_row), $_cell);

$j++;

}

$i++;

}

}

//文件名处理

if(!$fileName){

$fileName = uniqid(time(),true);

}

$objWrite = \PHPExcel_IOFactory::createWriter($obj, 'Excel2007');

if($isDown){ //网页下载

header('pragma:public');

ob_end_clean();//(这个地方及其要注意!!!!!)清除缓冲区,避免乱码

header('Content-Type: application/vnd.ms-excel');

header("Content-Disposition:attachment;filename=$fileName.xlsx");

$objWrite->save('php://output');exit;

}

$_fileName = iconv("utf-8", "gb2312", $fileName); //转码

$_savePath = $savePath.$_fileName.'.xlsx';

$objWrite->save($_savePath);

return $savePath.$fileName.'.xlsx';

}

function doimportExecl(){

$file=input('post.');

$this->importExecl($file);

}

3.话不多说,先解释一波:

3.1

$title:导出excel的标题

$data:要导出的数据(只可以是数组)

$fileName:文件名称

$savePath:包存路劲

$isDown:是否下载(建议在测试的时候选择true便于观测)

3.2关键代码都有注释就不解释了

3.3同上3.2不解释

3.4这里要注意的是缓冲区问题。这里处理不好的话个很容易出现编码混乱。

4.总结需要注意的地方:

一个是外部类库的引入,

另一个是缓冲区乱码问题,

第三个是如果需要合并单元格或者是改变excel格式(请看第3.2便可解决);

原文:https://www.cnblogs.com/mengor/p/8136365.html

加油!!!!!!!!!!!

php怎样打印excel图表,Tp5.0+PHPExcel.php实现excel打印数据表相关推荐

  1. TP5.0 PHPExcel 数据表格导出导入(引)

    TP5.0 PHPExcel 数据表格导出导入(引) 今天看的是PHPExcel这个扩展库,Comporse 下载不下来,最后只能自己去github里面手动下载,但有一个问题就是下载下来的PHPExc ...

  2. Excel如何清空0值单元格整行数据

    今天跟大家分享一下Excel如何清空0值单元格整行数据 1.如下图是某班级成绩表,现在我们想要将总分列数据0值单元格整行数据清除. 2.首先我们选中总分列数据单元格区域 3.然后点击下图选项(Exce ...

  3. TP5.0 PHPExcel 数据表格导出导入(原)

    今天看的是PHPExcel这个扩展库,Comporse 下载不下来,最后只能自己去github里面手动下载,但有一个问题就是下载下来的PHPExcel没有命名空间,所以框架里面的use根本引入不进去, ...

  4. php导入导出xls表,TP5.0 PHPExcel 数据表格导出导入

    1.先在github里面下载PHPexcel这个类库 或者通过以下链接下载PHPexcel类库. http://www.php.cn/xiazai/leiku/1491 2.解压之后把它复制到exte ...

  5. 计算机excel柱状图刻度单位,如何设置excel图表的坐标刻度和单位-excel 柱状图 坐标 区间刻度...

    如何改变excel图表的坐标最小刻度值? 选中纵坐标,按Ctrl 1,在弹出的对话框中左侧选择坐标轴选项,一般默认就是,再看右侧,选择次要刻度单位为固定,再在下方的次要刻度线类型中选择外部,确定退出就 ...

  6. Excel图表制作难?这款excel图表工具插件免费用

    有时候表格数据太多,做出来的图表会变得非常复杂,本应该是一眼就能看明白的图表,这时也是变成了累赘,反而不如直接去看表格更为直观. 但是这段时间一直在翻找有效的图表工具,不论是百度还是知乎,基本上都是用 ...

  7. 怎样用计算机添加标题,如何在excel图表中添加标题 如何更改Excel图表中标题的字体...

    在Excel中使用图表可以使表格更具可读性,尤其是可以在几秒钟内找到关键指标.在本教程中,我们将在图例中添加图例,而且还将自定义图例的外观,尤其是字体及其颜色. 在Excel中为图表添加标题 单击要向 ...

  8. 对比excel,用python绘制柱状图时添加table数据表

    最近在做数据可视化的时候,希望在图上同时显示数据表.关于这个需求,用excel可以比较方便,直接快速布局中选择布局5即可.那么,如果我们想用python也来完成这项任务,可以怎么做呢? 期望效果预览: ...

  9. php转换excel文件怎么打开方式,用PHP将mysql数据表转换为excel文件格式_php

    详细内容如下: $DB_Server = "localhost"; $DB_Username = "mydowns"; $DB_Password = " ...

最新文章

  1. [20180806]tune2fs调整保留块百分比.txt
  2. Mongoose源码剖析:外篇之web服务器
  3. boost::hana::is_disjoint用法的测试程序
  4. DailyRollingFileAppender-设置文件大小和备份数
  5. pythonocc 扩展数据_如何在pythonOCC中使用样条函数?
  6. Guns启动项目抛出:脚本错误,flyway执行迁移异常
  7. HAUT校赛--最大奇子段和
  8. netflix-hystrix-简例
  9. JMS 基本概念、消息结构、确认模式 acknowledgeMode
  10. axure 原型图 基础知识介绍
  11. 天线传播原理、作用及分类
  12. 【计算机图形学】基于OpenGL的中点Bresenham算法画直线
  13. [高数][高昆轮][高等数学上][第一章-函数与极限]01.映射与极限
  14. python项目之 路由器抓取器
  15. 黑洞真实模样,时空弯曲如何弯的?
  16. SJA1000的调试经历【转】
  17. ASEMI快恢复二极管ES8JC参数,ES8JC规格,ES8JC封装
  18. 1091: 童年生活二三事(多实例测试)Python
  19. 现代浏览器的web音频javascript类库 - Howler.js
  20. DDM(Drift Detection Method)

热门文章

  1. Oracle基础综合案例
  2. 使用VS创建第一个窗口程序
  3. ASPMVC- Layout 使用
  4. linux 直角字符,如何实现打印直角三角形的详细解释
  5. php网银支付,网银在线支付接口实例 php版
  6. 自我反省系列——粗心导致GG同步失效
  7. 如何理解企业安全能力框架(IPDRR)
  8. docker数据迁移
  9. 计算机进行加减乘除的原理——万物皆加法
  10. vite build