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

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

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

随着互联网应用日益普及,以及各类数据之间的相互交互和数据转移需求的不断增长,文件格式的转换和导入导出已成为常见需求之一。在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导入和导出?的详细内容,更多请关注9543建站博客其它相关文章!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。

作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:PHP中的高性能图像处理技术
下一篇:使用微信小程序开发简易的播放器

发表评论

关闭广告
关闭广告