[使用PHPSpreadsheet在Excel上添加新行

问题描述 投票:0回答:2

[嗨,我是这个不熟悉的名为PHPSpreadsheet的库。我试图阅读它的文档,但我听不懂。

我想在现有的Excel文件中插入新行,这是我到目前为止的内容

<?php 

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

/* $spreadsheet = new Spreadsheet(); */
$inputFileName = 'Excel/hello.xlsx';

/** Load $inputFileName to a Spreadsheet Object  **/
$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'文件中插入新数据,替换单元格的先前数据。

有什么想法吗?而且,加载较大的excel文件也会返回致命错误

Fatal error: Allowed memory size of 134217728 bytes exhausted
php excel phpexcel phpspreadsheet
2个回答
0
投票

您好,我认为此问题是由于内存耗尽而引起的,因此通过php.ini文件增加内存限制

例如memory_limit = 256M

增加内存限制后,重新启动您的Apache


0
投票

要创建新行,您需要在要插入的行号之前调用insertNewRowBefore() ...

insertNewRowBefore()

您还可以通过插入许多行来调用它,默认值为1。

如果要追加一行,可以调用$sheet = $spreadsheet->getActiveSheet(); $sheet->insertNewRowBefore(1); $sheet->setCellValue('A1', 'Updated'); 查找最后一行,并为新行添加1。还要更改getHighestRow()调用中列的硬编码以也使用此行...

setCellValue()
© www.soinside.com 2019 - 2024. All rights reserved.