首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用PHPSpreadsheet在Excel上添加新行

如何使用PHPSpreadsheet在Excel上添加新行
EN

Stack Overflow用户
提问于 2019-10-03 06:14:01
回答 3查看 11.3K关注 0票数 9

嗨,我是这个名叫PHPSpreadsheet的图书馆的新手。我试着看了它的文档,但我不明白。

我想在现有的 Excel文件中插入一个新行,下面是我到目前为止拥有的内容:

代码语言:javascript
运行
复制
<?php 

require '../vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

$inputFileName = 'Excel/hello.xlsx';
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileName);

$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Updated');

$writer = new Xlsx($spreadsheet);
$writer->save('../controller/excel/hello.xlsx');

?>

这将在“hello.xsls”文件中插入新数据,以取代单元格以前的数据。如何使其将数据写入新行

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-03 06:25:11

若要创建新行,需要使用要插入的行号调用insertNewRowBefore() .

代码语言:javascript
运行
复制
$sheet = $spreadsheet->getActiveSheet();
$sheet->insertNewRowBefore(1);
$sheet->setCellValue('A1', 'Updated');

您也可以使用要插入的行数来调用它,默认为1。

如果要附加一行,可以调用getHighestRow()查找最后一行并为新行添加1。还将setCellValue()调用中列的硬编码更改为使用此行.

代码语言:javascript
运行
复制
$sheet = $spreadsheet->getActiveSheet();
$row = $sheet->getHighestRow()+1;
$sheet->insertNewRowBefore($row);
$sheet->setCellValue('A'.$row, 'Updated');
票数 13
EN

Stack Overflow用户

发布于 2019-10-03 06:21:04

你好,我想这个问题是因为内存耗尽,所以请通过php.ini文件增加内存限制。

memory_limit =256米

增加内存限制后,重新启动apache

票数 0
EN

Stack Overflow用户

发布于 2022-09-11 10:47:50

接受的答案会引发异常:“列引用不应该是数字的。”

对我来说,工作:

代码语言:javascript
运行
复制
...
$row = 'A' . ($sheet->getHighestRow() +1);
$sheet->insertNewColumnBefore($row);
$sheet->setCellValue($row, 'Hello World again!');
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58213250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档