赞
踩
目录
在ThinkPHP框架中使用PHPExcel库来处理Excel文件,可以极大地简化Excel数据的读取和写入操作。以下是对在ThinkPHP中使用PHPExcel读取和写入的介绍
首先,需要下载PHPExcel库并将其放置在ThinkPHP的Vendor目录下,或者通过Composer进行安装。然后,在你的控制器或模型中引入PHPExcel类。
下载地址:PHPExcel
- use PHPExcel_IOFactory;
- use PHPExcel;
使用PHPExcel_IOFactory
的load()
方法加载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);
- // 处理行数据...
- }
创建一个新的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库以获得更好的支持和功能。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。