因为最开始做 PHP 的时候都是用 PHPExcel 来导出 excel。后来一直没有继续在做 PHP。前段时间做的一个小 tool 需要实现excel 的导出。在使用 PHPExcel 的时候一直报错,好像是由于 PHP 版本的问题。懒得去弄 PHP 的版本,就查了一些资料,使用PHPSpreadsheet 实现了功能。其实具体用法和 PHPExcel 差不多,总结一下 PHPSpreadsheet 的用法。

首先要使用 Composer 工具加载 PHPSpreadsheet

安装 Composer

Composer 是PHP的一个依赖管理工具,我们可以在项目声明所依赖的外部工具库,Composer 会帮助安装这些依赖的库文件
Composer 是基于指定的项目的某个目录中进行安装的,一般会安装在php的路径下。例如 c:/xampp/php

windows 平台:

1. 下载地址:<b>https://getcomposer.org/download/</b>
2. 需要在 php.ini 开启 openssl 设置
3. 安装时需要选择 php.exe
4. 安装成功 输入 composer --version 查看

Linux 平台:

1.使用下面命令来安装

# php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
    # php composer-setup.php

2.设置全局调用 & 切换为国内镜像
    # mv composer.phar /usr/local/bin/composer
    # composer config -g repo.packagist composer https://packagist.phpcomposer.com
3.更新 composer
    # composer selfupdate

使用 Composer

安装 composer 后会在 php 目录中生成一个 composer.json 文件,文件描述了项目的依赖关系
    {
            "require": {
                    "monolog/monolog": "1.2.*"
            }
    }

1. 使用 composer install 安装依赖包
2. require 命令
除了使用 install 命令外,也可以使用 require 命令快速的安装一个依赖而不需要手动在 composer.json 里添加依赖信息:<b>composer require monolog/monolog</b>
3.  update 命令**********
update 命令用于更新项目里所有的包,或者指定的包
<b>composer update</b> 或者 <b>composer update monolog/monolog symfony/dependency-injection</b>
4. remove 命令
remove 命令用于移除一个包及其依赖
5. search 命令
6. show 命令

Composer 自动加载机制

require 'vendor/autoload.php';use Md5Crypt\Md5Crypt;

PhpSpreadsheet

1. PHP 导出 Excel  的第三方插件,可以使用 composer 下载
      composer require phpoffice/phpspreadsheet

2. 单个 sheet 创建

    <?phprequire '../vendor/autoload.php';use PhpOffice\PhpSpreadsheet\Spreadsheet;use PhpOffice\PhpSpreadsheet\Writer\Xlsx;$spreadsheet = new Spreadsheet();$sheet = $spreadsheet->getActiveSheet();$sheet->setCellValue('A1', 'Welcome to Helloweba.');$writer = new Xlsx($spreadsheet);$writer->save('hello.xlsx');

创建多个 sheet

        $spreadsheet->setActiveSheetIndex(0)->setCellValue('A1', 'Keywords');$spreadsheet->setActiveSheetIndex(0)->setCellValue('B1', 'Description');$spreadsheet->getActiveSheet()->setTitle('Sheet One');$spreadsheet->createSheet();$spreadsheet->setActiveSheetIndex($key)->setCellValue('A1', "URL");$spreadsheet->setActiveSheetIndex($key)->setCellValue('B1', "BU");$spreadsheet->getActiveSheet()->setTitle('Sheet Two');//设置当前 sheet$spreadsheet->setActiveSheetIndex(0);

生成并保存

        $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);$fileName = 'download/exportExcel_'.date('Y-m-d').'.xls';$writer->save('../'.$fileName);

实现EXCEL文件下载

        $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);header('Content-Type:application/vnd.ms-excel');header('Content-Disposition:attachment;filename="xxxxx.xls"');header('Cache-Control:max-age=0');$writer->save('php://output');

当 js 通过 ajax 将数据h传给 PHP 进行处理并希望通话PHP实现 Excel 下载是无法实现的,只能利用 PHP 将文档保存在服务器上,然后返回 url 给js ,通过 js 实现下载

window.open(urlDownload + JSON.parse(result).url,'_blank' );

PHPSpreadsheet相关推荐

  1. 使用PhpSpreadsheet将Excel导入到MySQL数据库

    使用PhpSpreadsheet将Excel导入到MySQL数据库 日常开发中,我们经常遇到这样的场景,需要将一个Excel表格数据如客户信息.学生成绩表导入到系统数据库中,然后在系统中进行进一步操作 ...

  2. php Spreadsheet 导出,PhpSpreadsheet 导出Excel

    /** * Excel 助手 * sudo composer require phpoffice/phpspreadsheet */ namespace CommonUtil; use PhpOffi ...

  3. php导出excel数据代码,phpspreadsheet导出数据到Excel的方法介绍(代码示例)

    本篇文章给大家带来的内容是关于phpspreadsheet导出数据到Excel的方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 之前我们使用PHP导出Excel数 ...

  4. PhpSpreadsheet 电子表格(excel) PHP处理笔记

    1 安装 composer require phpoffice/phpspreadsheet Github地址:PHPOffice/PhpSpreadsheet 文档地址:PhpSpreadsheet ...

  5. yii2框架中整合PHPOffice的PhpSpreadsheet开源库

    为什么80%的码农都做不了架构师?>>>    在所有的php office库(http://www.21doc.net/php/awesomephp#Office),以前用得最多的 ...

  6. PhpSpreadsheet如何读取excel文件

    PhpSpreadsheet如何读取excel文件 一.总结 一句话总结:万能的百度,直接搜代码就好,绝对有,毕竟github上面4000+的关注,说明很多人用了这个,使用照着demo倒是异常简单 二 ...

  7. Phpspreadsheet 中文文档(六)读写文件+读取文件

    读写文件 从体系结构您已经知道,使用基本PhpSpreadsheet类无法对持久性存储进行读写.为此,PhpSpreadsheet提供读者和作家,这是实现\PhpOffice\PhpSpreadshe ...

  8. 【PhpSpreadsheet】实现excel冻结列和行(即左右滚动时指定列和行固定不动)

    composer require phpoffice/phpspreadsheet 版本:^1.18 在做表格数据导出时,如何冻结列和行(即左右滚动时冻结的列和行固定不动) 代码 $spreadshe ...

  9. phpspreadsheet excel导入导出

    单个sheet页Excel2003版最大行数是65536行.Excel2007开始的版本最大行数是1048576行.Excel2003的最大列数是256列,2007以上版本是16384列. xlswr ...

  10. PHP导出基类(PHPExcel,PhpSpreadsheet)

    PHP导出常用的导出类(PHPExcel,PhpSpreadsheet -->通过composer自行拉取到对应的项目下) 1:PHPExcel基类 <?php namespace LYJ ...

最新文章

  1. Delphi下使用指针的简单总结
  2. Lesson 1#03-Python安装与Hello Python World
  3. java调用keras theano模型_使用Keras / Theano和LSTM进行多标签文本分类
  4. java光标位置无效_java - java.sql.SQLException:无效的光标位置 - 堆栈内存溢出
  5. 微信企业号三个连接模式
  6. upnp协议和dlna源码理解与修改
  7. bool查询原理 es_es6.2.4,使用bool查询查出的结果,SearchResponse的Hits[]总是比t..._慕课猿问...
  8. 程序员如何避免半途而废?
  9. 电脑如何进入bios模式_电脑如何进入bios,你还不收藏?
  10. 冒泡排序java代码
  11. dtft性质及证明_信号处理基础-- DTFT、DFT和STFT基本概念
  12. php制作入库单,教你如何利用vba制作自动登记数据的仓库入库单
  13. 不经历风雨,怎么见彩虹,没有人能随随便便成功
  14. 自动控制原理之如何理解梅森公式(内附MATLAB求解传递函数程序)
  15. 关于nextInt()、next()和nextLine()的用法
  16. 在 关闭页面/卸载(unload)文档 之前向服务器发送请求
  17. greasemonkey_Greasemonkey –在任何页面上执行自定义JavaScript
  18. android vitamio框架,利用Vitamio框架来做自己的视频播放器
  19. apache Hop安装既部署问题收集
  20. 解决三星调用系统相机拍照显示图片旋转90度横着的问题

热门文章

  1. 词霸天下---3~4词根【仅供学习使用】
  2. php中标识符不正确的是,下面PHP标识符中定义不正确的是( )
  3. 世界著名音乐家-按出生年月排序
  4. OLED屏幕对比LCD为什么更加省电?
  5. vertical-align和text-align的理解
  6. 上周 GitHub 热点速览 vol.08:系统设计必看 The System Design Primer
  7. python脚本之批量查询网站权重
  8. Thymeleaf教程 (十二) 标签内,js中使用表达式
  9. 实战踩坑---MFC---CreateEvent
  10. 妙语佳句 In English