Thinkphp中PHPExcel使用方法详解

目录

概述

一、引入PHPExcel库

二、读取Excel文件

三、写入Excel文件

四、注意事项

 五、扩展功能

六、调试与错误处理 

总结


概述

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

一、引入PHPExcel库

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

下载地址:PHPExcel

use PHPExcel_IOFactory;  
use PHPExcel;

二、读取Excel文件

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

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

三、写入Excel文件

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

$excel         = new PHPExcel();  // 创建一个对象实例
$sheet         = $excel->getActiveSheet();  // 创建一个活动表格对象
$sheet->setTitle('文件数据');// 设置当前活动表格的名称
//设置表格属性
$sheet->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);// 所有单元格文字水平居中
$sheet->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);// 所有单元格文字垂直居中

$rowVal 		= array('姓名','性别','年龄');
//设置Excel表头
foreach ($rowVal as $key=>$val){
    //字体加粗
    $sheet->getStyleByColumnAndRow($key,1)->getFont()->setBold(true);
    //文字居中
	$sheet->getStyleByColumnAndRow($key,1)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    //设置内容
    $sheet->setCellValueByColumnAndRow($key,1,$val);
}

// 写入数据到单元格...  第一行为表头,所以从第二行开始  
$sheet->setCellValue('A2', '张三');  
$sheet->setCellValue('B2', '男'); 
$sheet->setCellValue('B3', '26');  

// 写入更多行数据...  
/*$sheetLine        = 2;// 开始的行
foreach($dataList as $dKey=>$data){
    $sheet->setCellValue('A'.$sheetLine, $data['username']);  
    $sheet->setCellValue('B'.$sheetLine, $data['sex']); 
    $sheet->setCellValue('B'.$sheetLine, $data['age']); 
    $sheetLine++;
}
*/
$writer     = PHPExcel_IOFactory::createWriter($excel, 'Excel2007');  
$writer->save('file.xlsx');

四、注意事项

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

 五、扩展功能

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

六、调试与错误处理 

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

总结

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

  • 12
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值