4

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

4

2 回答 2

4

您可以$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 . ')'); }

于 2017-05-05T07:39:42.067 回答
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);
于 2017-05-01T06:34:17.740 回答