• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 如何使用PhpSpreadsheet导入导出Excel

如何使用PhpSpreadsheet导入导出Excel

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了PhpSpreadsheet,导入导出Excel等相关知识,希望对您有所帮助

本篇文章给大家介绍一下使用PhpSpreadsheet导入导出Excel的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。


如何使用PhpSpreadsheet导入导出Excel


PHP对Excel导入&导出操作

最近公司要做报表功能,各种财务报表、工资报表、考勤报表等,复杂程度让人头大,于是特地封装适用各大场景的导入&导出操作,希望各界大神支出不足之处,以便小弟继续完善。


phpspreadsheet 引入

由于PHPExcel早就停止更新维护,所以适用phpspreadsheet。不知道如何通过composer拉取项目包的同学,可以查看Composer学习一文。引入方法:

composer require phpoffice/phpspreadsheet


引入命名空间

由于本人项目中需要居中、背景、单元格格式等各种操作,所以引入较多,大家使用的时候,可以根据自己实际需要引入。

use PhpOffice\PhpSpreadsheet\Reader\Xlsx;use PhpOffice\PhpSpreadsheet\Reader\Xls;use PhpOffice\PhpSpreadsheet\IOFactory;use PhpOffice\PhpSpreadsheet\Cell\Coordinate;use PhpOffice\PhpSpreadsheet\Spreadsheet;use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;use PhpOffice\PhpSpreadsheet\Cell\DataType;use PhpOffice\PhpSpreadsheet\Style\Fill;use PhpOffice\PhpSpreadsheet\Style\Color;use PhpOffice\PhpSpreadsheet\Style\Alignment;use PhpOffice\PhpSpreadsheet\Style\Border;use PhpOffice\PhpSpreadsheet\Style\NumberFormat;


Excel导入操作(importExcel)

除了单纯的处理Excel数据外,还可以将Excel中的合并项、公式项、单元格格式提取,提取后可根据业务需求做对应处理后存储起来,以便后续的各种操作。

/** * 使用PHPEXECL导入 * * @param string $file      文件地址 * @param int    $sheet     工作表sheet(传0则获取第一个sheet) * @param int    $columnCnt 列数(传0则自动获取最大列) * @param array  $options   操作选项 *                          array mergeCells 合并单元格数组 *                          array formula    公式数组 *                          array format     单元格格式数组 * * @return array * @throws Exception */function importExecl(string $file = '', int $sheet = 0, int $columnCnt = 0, &$options = []){    try {        /* 转码 */        $file = iconv("utf-8", "gb2312", $file);         if (empty($file) OR !file_exists($file)) {            throw new \Exception('文件不存在!');        }         /** @var Xlsx $objRead */        $objRead = IOFactory::createReader('Xlsx');         if (!$objRead->canRead($file)) {            /** @var Xls $objRead */            $objRead = IOFactory::createReader('Xls');             if (!$objRead->canRead($file)) {                throw new \Exception('只支持导入Excel文件!');            }        }         /* 如果不需要获取特殊操作,则只读内容,可以大幅度提升读取Excel效率 */        empty($options) && $objRead->setReadDataOnly(true);        /* 建立excel对象 */        $obj = $objRead->load($file);        /* 获取指定的sheet表 */        $currSheet = $obj->getSheet($sheet);         if (isset($options['mergeCells'])) {            /* 读取合并行列 */            $options['mergeCells'] = $currSheet->getMergeCells();        }         if (0 == $columnCnt) {            /* 取得最大的列号 */            $columnH = $currSheet->getHighestColumn();            /* 兼容原逻辑,循环时使用的是小于等于 */            $columnCnt = Coordinate::columnIndexFromString($columnH);        }         /* 获取总行数 */        $rowCnt = $currSheet->getHighestRow();        $data   = [];         /* 读取内容 */        for ($_row = 1; $_row <= $rowCnt; $_row++) {            $isNull = true;             for ($_column = 1; $_column <= $columnCnt; $_column++) {                $cellName = Coordinate::stringFromColumnIndex($_column);                $cellId   = $cellName . $_row;                $cell     = $currSheet->getCell($cellId);                 if (isset($options['format'])) {                    /* 获取格式 */                  
  


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • PHPSpreadsheet导出Excel列数超过26报错怎么办?
  • 如何使用PhpSpreadsheet导入导出Excel

相关文章

  • PHP会话控制:cookie和session区别与用法深入理解
  • Vue 手势组件教程
  • PHP怎么删除最后一个字符
  • ThinkPHP框架SQL操作链式写法原理
  • PHPCMS V9 文章列表循环样式自定义方法
  • PHP+jQuery+MySql实现红蓝投票功能
  • vue.js怎么实现二级下拉悬浮菜单
  • 你知道Laravel Collection的实际使用场景什么吗?
  • 了解Ajax Session失效跳转登录页面的方法
  • PHP版抖音去水印代码

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • Photoshop制作苹果语音助理Siri图标动画教程
    • 使用thinkphp3.2.3开发微信授权登录详细教程
    • PhotoShop打造星云四射跳舞的女孩海报效果教程
    • 详解PS进行IOS设计流程的诀窍
    • Photoshop设计游戏简洁风格的标志教程
    • 针对SEO怎样聪明的使用 Flash
    • 聊聊Nodejs获取参数的四种方法
    • 详解ThinkPHP6结合GuzzleHTTP发送HTTP请求
    • 一分钟学会PHP中关于封装验证码(上)
    • PS制作非常逼真的针织吊牌

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有