当前位置:   article > 正文

Thinkphp中PHPExcel使用方法详解_thinkphp 使用excel

thinkphp 使用excel

目录

概述

一、引入PHPExcel库

二、读取Excel文件

三、写入Excel文件

四、注意事项

 五、扩展功能

六、调试与错误处理 

总结


概述

在ThinkPHP框架中使用PHPExcel库来处理Excel文件,可以极大地简化Excel数据的读取和写入操作。以下是对在ThinkPHP中使用PHPExcel读取和写入的介绍

一、引入PHPExcel库

首先,需要下载PHPExcel库并将其放置在ThinkPHP的Vendor目录下,或者通过Composer进行安装。然后,在你的控制器或模型中引入PHPExcel类。

下载地址:PHPExcel

  1. use PHPExcel_IOFactory;
  2. use PHPExcel;

二、读取Excel文件

使用PHPExcel_IOFactoryload()方法加载Excel文件,然后可以获取工作表、行和单元格数据。

  1. $inputFileName = 'file.xlsx'; //文件的路径
  2. $inputFileType = PHPExcel_IOFactory::identify($inputFileName);
  3. $reader = PHPExcel_IOFactory::createReader($inputFileType);
  4. $excel = $reader->load($inputFileName);
  5. $sheet = $excel->getSheet(0); // 获取第一个工作表
  6. $highestRow = $sheet->getHighestRow(); // 获取行数
  7. $highestColumn = $sheet->getHighestColumn(); // 获取列数
  8. for ($row = 1; $row <= $highestRow; $row++) {
  9. $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, null, true, false);
  10. // 处理行数据...
  11. }

三、写入Excel文件

创建一个新的PHPExcel对象,设置工作表,并添加数据到单元格。最后,使用PHPExcel_Writer_Excel2007将数据写入文件。

  1. $excel = new PHPExcel(); // 创建一个对象实例
  2. $sheet = $excel->getActiveSheet(); // 创建一个活动表格对象
  3. $sheet->setTitle('文件数据');// 设置当前活动表格的名称
  4. //设置表格属性
  5. $sheet->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);// 所有单元格文字水平居中
  6. $sheet->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);// 所有单元格文字垂直居中
  7. $rowVal = array('姓名','性别','年龄');
  8. //设置Excel表头
  9. foreach ($rowVal as $key=>$val){
  10. //字体加粗
  11. $sheet->getStyleByColumnAndRow($key,1)->getFont()->setBold(true);
  12. //文字居中
  13. $sheet->getStyleByColumnAndRow($key,1)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  14. //设置内容
  15. $sheet->setCellValueByColumnAndRow($key,1,$val);
  16. }
  17. // 写入数据到单元格... 第一行为表头,所以从第二行开始
  18. $sheet->setCellValue('A2', '张三');
  19. $sheet->setCellValue('B2', '男');
  20. $sheet->setCellValue('B3', '26');
  21. // 写入更多行数据...
  22. /*$sheetLine = 2;// 开始的行
  23. foreach($dataList as $dKey=>$data){
  24. $sheet->setCellValue('A'.$sheetLine, $data['username']);
  25. $sheet->setCellValue('B'.$sheetLine, $data['sex']);
  26. $sheet->setCellValue('B'.$sheetLine, $data['age']);
  27. $sheetLine++;
  28. }
  29. */
  30. $writer = PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
  31. $writer->save('file.xlsx');

四、注意事项

  • PHPExcel库已经停止更新,并推荐使用PhpSpreadsheet作为其替代品。如果可能的话,考虑迁移到PhpSpreadsheet以获取更好的性能和更多的功能。
  • 在处理大量数据时,PHPExcel可能会消耗较多的内存。确保你的服务器配置能够处理所需的数据量。
  • 当处理Excel文件时,注意文件路径和权限问题,确保ThinkPHP应用有权限读取和写入指定的文件。

 五、扩展功能

除了基本的读取和写入操作外,PHPExcel还提供了许多其他功能,如设置单元格样式、合并单元格、添加图表等。可以根据需求查阅PHPExcel的文档来了解更多高级用法。

六、调试与错误处理 

在使用PHPExcel时,可能会遇到各种错误和异常。确保开启ThinkPHP的调试模式,并查看错误日志以定位问题。同时,你也可以使用try-catch块来捕获和处理可能出现的异常。

总结

总之,使用PHPExcel库可以大大简化在ThinkPHP中处理Excel文件的任务。然而,随着PHPExcel的停止更新,建议考虑迁移到更现代的PhpSpreadsheet库以获得更好的支持和功能。

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/480950
推荐阅读
相关标签
  

闽ICP备14008679号