您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2025/5/12 17:44:55发布27次查看
随着互联网应用日益普及,以及各类数据之间的相互交互和数据转移需求的不断增长,文件格式的转换和导入导出已成为常见需求之一。在web应用程序中,导入和导出excel文件是日常工作中常见的数据交換方式。本文将介绍如何在thinkphp6框架中实现excel导入导出功能。
一、 thinkphp6框架介绍
thinkphp6是一个自由、开源、快速、简单的面向对象的轻量级php框架。它具有高性能、丰富的功能、灵活的配置、强大的扩展性等特点,已经成为php应用开发领域的一个热门框架。
二、excel导出
示例代码<?phpnamespace appindexcontroller;use phpexcel;use phpexcel_iofactory;class excelexport{ public function export() { $objphpexcel = new phpexcel(); // 设置当前活动sheet $objphpexcel->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导入
示例代码<?phpnamespace appindexcontroller;use phpexcel;use phpexcel_iofactory;class excelimport{ public function import() { if (empty($_files['file']['tmp_name'])) { echo '请选择文件!'; exit; } $reader = phpexcel_iofactory::createreader('excel2007'); $phpexcel = $reader->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库的各种方法和属性,来实现文件格式交换,并更好地服务于我们的应用程序。
以上就是thinkphp6中如何进行excel导入和导出?的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product