ThinkPHP6中如何进行Excel导入和导出?

发布时间 - 2023-06-12 00:00:00    点击率:

随着互联网应用日益普及,以及各类数据之间的相互交互和数据转移需求的不断增长,文件格式的转换和导入导出已成为常见需求之一。在web应用程序中,导入和导出excel文件是日常工作中常见的数据交換方式。本文将介绍如何在thinkphp6框架中实现excel导入导出功能。

一、 ThinkPHP6框架介绍

ThinkPHP6是一个自由、开源、快速、简单的面向对象的轻量级PHP框架。它具有高性能、丰富的功能、灵活的配置、强大的扩展性等特点,已经成为PHP应用开发领域的一个热门框架。

二、Excel导出

  1. 示例代码
setActiveSheetIndex(0);

        // 设置标题
        $objPHPExcel->getActiveSheet()->setTitle('学生成绩');

        // 设置表头
        $objPHPExcel->getActiveSheet()->setCellValue('A1', '学号');
        $objPHPExcel->getActiveSheet()->setCellValue('B1', '姓名');
        $objPHPExcel->getActiveSheet()->setCellValue('C1', '语文');
        $objPHPExcel->getActiveSheet()->setCellValue('D1', '数学');
        $objPHPExcel->getActiveSheet()->setCellValue('E1', '英语');
        $objPHPExcel->getActiveSheet()->setCellValue('F1', '总分');

        // 设置数据
        $data = [
            ['1001', '张三', '85', '90', '88', '263'],
            ['1002', '李四', '90', '88', '90', '268'],
            ['1003', '王五', '92', '87', '91', '270']
        ];
        $row = 2;
        foreach ($data as $val) {
            $objPHPExcel->getActiveSheet()->setCellValue('A' . $row, $val[0]);
            $objPHPExcel->getActiveSheet()->setCellValue('B' . $row, $val[1]);
            $objPHPExcel->getActiveSheet()->setCellValue('C' . $row, $val[2]);
            $objPHPExcel->getActiveSheet()->setCellValue('D' . $row, $val[3]);
            $objPHPExcel->getActiveSheet()->setCellValue('E' . $row, $val[4]);
            $objPHPExcel->getActiveSheet()->setCellValue('F' . $row, $val[5]);
            $row++;
        }

        // 设置列宽
        $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(15);

        // 导出Excel
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="学生成绩.xlsx"');
        header('Cache-Control: max-age=0');
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
        $objWriter->save('php://output');
        exit;
    }
}
  1. 说明

上面的示例代码演示了如何使用PHPExcel库实现Excel导出。PHPExcel库是一个PHP读写Excel文件的开源库,功能强大,操作简单。

首先,我们创建了一个PHPExcel实例,然后设置当前活动sheet,并设置了标题和表头。之后,我们设置数据并对列宽进行了设置。最后,我们使用header函数设置了导出Excel的内容类型、文件名和缓存控制,然后使用PHPExcel_IOFactory类的createWriter方法创建一个Excel2007格式的写入器,并将数据流输出到浏览器。

三、Excel导入

  1. 示例代码
load($_FILES['file']['tmp_name']);

        $sheet = $PHPExcel->getSheet(0); // 获得第1个工作表

        $highestRow = $sheet->getHighestRow(); // 取得总行数
        $highestColumn = $sheet->getHighestColumn(); // 取得总列数

        $data = [];
        for ($row = 2; $row <= $highestRow; $row++) {
            $rowData = [];
            for ($col = 'A'; $col <= $highestColumn; $col++) {
                $rowData[$col] = (string)$sheet->getCell($col . $row)->getValue();
            }
            $data[] = $rowData;
        }

        var_dump($data);
    }
}
  1. 说明

上面的示例代码演示了如何使用PHPExcel库实现Excel导入。首先,我们判断客户端是否上传了文件,并使用PHPExcel_IOFactory类的createReader方法创建一个Excel2007格式的读取器。然后,我们使用$reader的load方法将Excel文件读入内存,并获取其中的第一个工作表。接下来,我们通过最高行和最高列的索引值循环遍历Excel表格,将每行数据以关联数组的形式存储到$data变量中,并最终输出该变量。

四、总结

通过本文的介绍,我们了解了如何使用ThinkPHP6框架结合PHPExcel库实现Excel文件的导入导出功能,这为我们的Web应用程序开发提供了便利和支持。我们可以根据实际的需求,灵活运用PHPExcel库的各种方法和属性,来实现文件格式交换,并更好地服务于我们的应用程序。


# thinkphp  # php  # 关联数组  # 面向对象  # 循环  # 对象  # excel  # 是一个  # 如何使用  # 创建一个  # 开源  # 应用程序  # 行数  # 互联网  # 第一个  # 遍历  # 并将 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  如何在建站宝盒中设置产品搜索功能?  如何打造高效商业网站?建站目的决定转化率  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  在centOS 7安装mysql 5.7的详细教程  浅谈Javascript中的Label语句  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  文字头像制作网站推荐软件,醒图能自动配文字吗?  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  网站制作报价单模板图片,小松挖机官方网站报价?  简历没回改:利用AI润色让你的文字更专业  Laravel如何处理表单验证?(Requests代码示例)  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  Laravel定时任务怎么设置_Laravel Crontab调度器配置  Laravel如何创建自定义中间件?(Middleware代码示例)  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  javascript基于原型链的继承及call和apply函数用法分析  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  浅谈javascript alert和confirm的美化  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何确认建站备案号应放置的具体位置?  如何彻底卸载建站之星软件?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  打造顶配客厅影院,这份100寸电视推荐名单请查收  Python文本处理实践_日志清洗解析【指导】  Laravel如何实现本地化和多语言支持?(i18n教程)  javascript读取文本节点方法小结  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  制作公司内部网站有哪些,内网如何建网站?  制作旅游网站html,怎样注册旅游网站?  如何在IIS中新建站点并配置端口与物理路径?  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  详解阿里云nginx服务器多站点的配置  如何在Windows环境下新建FTP站点并设置权限?  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  SQL查询语句优化的实用方法总结  如何快速生成高效建站系统源代码?  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  网站建设保证美观性,需要考虑的几点问题!  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布