Я использую 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"
имеет формулу в первой строке, поэтому всякий раз, когда новая запись будет динамически заполнять этот столбец, этот столбец должен содержать ту же формулу. Как мне этого добиться? Кто-нибудь сталкивался с этим раньше?
вы можете использовать как $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 . ')');
}
Вы можете попробовать что-то вроде этого
$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);