Добавить новую строку в Excel, используя таблицу PHPS - PullRequest
1 голос
/ 03 октября 2019

Привет, я новичок в этой библиотеке 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

Ответы [ 2 ]

0 голосов
/ 03 октября 2019

Чтобы создать новую строку, вам нужно позвонить insertNewRowBefore() с номером строки, которую вы хотите вставить до ...

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

Вы также можете позвонить с помощьюколичество строк для вставки, по умолчанию 1. 1. 1007 *

Если вы хотите добавить строку, вы можете позвонить getHighestRow(), чтобы найти последнюю строку и добавить 1 к ней для новой строки. Также измените жесткое кодирование столбца в вызове setCellValue(), чтобы использовать и эту строку ...

$sheet = $spreadsheet->getActiveSheet();
$row = $sheet->getHighestRow()+1;
$sheet->insertNewRowBefore($row);
$sheet->setCellValue('A'.$row, 'Updated');
0 голосов
/ 03 октября 2019

Здравствуйте, я думаю, что эта проблема возникла из-за исчерпания памяти, поэтому увеличьте лимит памяти с помощью файла php.ini

как memory_limit = 256M

После увеличения лимита памяти перезагрузите apache

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...