Estoy usando PHP (laravel) para escribir datos dinámicamente en una hoja de Excel desde la base de datos. Tengo una hoja de Excel en la que he llenado datos en la primera fila con fórmula en pocas columnas.
Ahora lo que quiero, solo quiero copiar esa fórmula en cada columna respectiva dinámicamente cuando estoy escribiendo datos dinámicamente. Estoy usando maatwebsite para escribir los datos en una hoja de Excel. Vea el código a continuación.
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); Supongamos que la columna "M" tiene una fórmula en la primera fila, por lo que cada vez que un nuevo registro complete esta columna dinámicamente, esa columna debe contener la misma fórmula. ¿Cómo puedo conseguir esto? ¿Alguien se enfrentó a esto antes?
puede usar como $sheet->setCellValue('B5','=SUM(B2:B4)'); en el momento de escribir datos en el archivo de Excel... Espero que esto te ayude...
CÓDIGO ACTUALIZADO
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 . ')'); }
Puedes intentar algo como esto
$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);