在 PHP 中从数据库写入动态数据时复制所有行中列的 excel 公式

Copy excel formula of column in all rows while writing dynamic data from DB in PHP

我正在使用 PHP (laravel) 从数据库动态写入 excel sheet 中的数据。我有 excel sheet,其中我在第一行中用几列中的公式填充了数据。

现在我想要的是,当我动态写入数据时,我只想在每个相应的列中动态复制该公式。我正在使用 maatwebsite 在 excel sheet 中写入数据。请参阅下面的代码。

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" 列在第一行中有公式,因此每当新记录动态填充此列时,该列必须包含相同的公式。我怎样才能做到这一点?有人遇到过这个吗?

你可以试试这样的

$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);

您可以在 excel 文件上写入数据时使用类似 $sheet->setCellValue('B5','=SUM(B2:B4)');...希望这对您有所帮助...
更新代码

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 . ')'); }