<?php declare(strict_types=1); ini_set('display_errors', 'On'); error_reporting(-1); require_once __DIR__ . '/PHPExcel-1.8.2/vendor/autoload.php'; // 本次演示使用1.8.2版本 // Excel文件路径 $filename = __DIR__ . '/test.xlsx'; // 新增行数据 $add = [ ['name' => '张三', 'gender' => '男', 'birth' => '2003'], ['name' => '李四', 'gender' => '女', 'birth' => '2004'], ['name' => '王五', 'gender' => '男', 'birth' => '2005'], ]; // 载入Excel文件 try { $pPHPExcel = PHPExcel_IOFactory::load($filename); } catch (PHPExcel_Reader_Exception $e) { exit("载入Excel文件[$filename]失败:" . $e->getMessage()); } // 激活第1个Sheet try { $pPHPExcel->setActiveSheetIndex(); // 形参$pIndex缺省值为0,即激活第1个Sheet } catch (PHPExcel_Exception $e) { exit('激活Sheet失败:' . $e->getMessage()); } // 获取最高行号 try { $row = (int)$pPHPExcel->getActiveSheet()->getHighestRow() + 1; } catch (PHPExcel_Exception $e) { exit('获取最高行号失败:' . $e->getMessage()); } /** * 设置单元格内容左对齐 * * @param PHPExcel $pPHPExcel PHPExcel对象 * @param string $pCoordinate 单元格坐标,示例:A1、B1、C1 * @return void */ function set_horizontal_left(PHPExcel $pPHPExcel, string $pCoordinate): void { try { $pPHPExcel->getActiveSheet()->getStyle($pCoordinate)->getAlignment() ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT); } catch (PHPExcel_Exception $e) { exit("设置[$pCoordinate]单元格内容左对齐失败:" . $e->getMessage()); } } // 插入新数据 foreach ($add as $data) { try { $pPHPExcel->getActiveSheet()->setCellValue("A$row", $data['name']); } catch (PHPExcel_Exception $e) { exit("设置[A$row]单元格内容失败:" . $e->getMessage()); } set_horizontal_left($pPHPExcel, "A$row"); try { $pPHPExcel->getActiveSheet()->setCellValue("B$row", $data['gender']); } catch (PHPExcel_Exception $e) { exit("设置[B$row]单元格内容失败:" . $e->getMessage()); } set_horizontal_left($pPHPExcel, "B$row"); try { $pPHPExcel->getActiveSheet()->setCellValue("C$row", $data['birth']); } catch (PHPExcel_Exception $e) { exit("设置[C$row]单元格内容失败:" . $e->getMessage()); } set_horizontal_left($pPHPExcel, "C$row"); $row++; // 移到下一行 } // 创建Writer对象保存Excel文件 $writer = new PHPExcel_Writer_Excel2007($pPHPExcel); try { $writer->save($filename); } catch (PHPExcel_Writer_Exception $e) { exit("保存Excel文件[$filename]失败:" . $e->getMessage()); } // 保存Excel文件后其内容如下: // -------------------------------------------------- // 姓名 性别 出生年份 // 刘一 男 2001 [原有数据] // 陈二 女 2002 [原有数据] // 张三 男 2003 [新增数据] // 李四 女 2004 [新增数据] // 王五 男 2005 [新增数据] //========== 总结 ==========// // 1、需要安装zip扩展,可到 https://pecl.php.net/package/zip 下载该扩展。
Copyright © 2024 码农人生. All Rights Reserved