laravel — копирует формулу Excel столбца во всех строках при записи динамических данных из БД в Stack Overflow

Я использую PHP (laravel) для записи данных динамически в таблицу Excel из базы данных. У меня есть лист Excel, в котором я заполнил данные в первой строке формулой в несколько столбцов.

Теперь, что я хочу, я просто хочу динамически копировать эту формулу в каждый соответствующий столбец, когда я пишу данные динамически. Я использую maatwebsite для записи данных в листе Excel. Смотрите ниже код.

Excel::selectSheetsByIndex(1)->load(public_path('uploads') . '/data.xlsx', function($reader) {
$reader->sheet('Sheetname', function($sheet) {
// Append row as very last
$sheet->appendRow(array(
'appended', 'appended' // Here I am appending the dynamic data in my code.
));
});
}, 'UTF-8')->store('xlsx', true);

Предположим, столбец "M" имеет формулу в первой строке, поэтому всякий раз, когда новая запись будет динамически заполнять этот столбец, этот столбец должен содержать ту же формулу. Как мне этого добиться? Кто-нибудь сталкивался с этим раньше?

3

Решение

вы можете использовать как $sheet->setCellValue('B5','=SUM(B2:B4)'); во время записи данных в файл Excel … Надеюсь, это поможет вам …
ОБНОВЛЕННЫЙ КОД

for($k=1;$k>n;$k++){
$sheet->setCellValue('AC' . $k, '=SUM(N' . $k . ',O' . $k . ',Q' . $k . ',S' . $k . ',T' . $k . ',V' . $k . ',Y' . $k . ',AB' . $k . ')');
}

2

Другие решения

Вы можете попробовать что-то вроде этого

$rule = ['appended', 'appended'];
Excel::selectSheetsByIndex(1)->load(public_path('uploads') . '/data.xlsx', function ($reader) use ($rule) {
$reader->sheet('Sheetname', function ($sheet) use ($rule) {
// Append row as very last
$sheet->appendRow($rule);
});
}, 'UTF-8')->store('xlsx', true);
2

По вопросам рекламы [email protected]