ThinkPHP6中如何进行Excel导入和导出?
发布时间 - 2023-06-12 00:00:00 点击率:次随着互联网应用日益普及,以及各类数据之间的相互交互和数据转移需求的不断增长,文件格式的转换和导入导出已成为常见需求之一。在web应用程序中,导入和导出excel文件是日常工作中常见的数据交換方式。本文将介绍如何在thinkphp6框架中实现excel导入导出功能。
一、 ThinkPHP6框架介绍
ThinkPHP6是一个自由、开源、快速、简单的面向对象的轻量级PHP框架。它具有高性能、丰富的功能、灵活的配置、强大的扩展性等特点,已经成为PHP应用开发领域的一个热门框架。
二、Excel导出
- 示例代码
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;
}
}- 说明
上面的示例代码演示了如何使用PHPExcel库实现Excel导出。PHPExcel库是一个PHP读写Excel文件的开源库,功能强大,操作简单。
首先,我们创建了一个PHPExcel实例,然后设置当前活动sheet,并设置了标题和表头。之后,我们设置数据并对列宽进行了设置。最后,我们使用header函数设置了导出Excel的内容类型、文件名和缓存控制,然后使用PHPExcel_IOFactory类的createWriter方法创建一个Excel2007格式的写入器,并将数据流输出到浏览器。
三、Excel导入
- 示例代码
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);
}
}- 说明
上面的示例代码演示了如何使用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扩展包开发入门到发布


', '学号');
$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;
}
}