【发布时间】:2021-05-26 18:42:24
【问题描述】:
我在 Laravel 5.8 中使用 Maatwebsite 3.1。
我生成了一个包含价格列的电子表格,我想对其进行总结。为此,我有以下代码:
<?php
namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromCollection;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
use Maatwebsite\Excel\Concerns\WithStyles;
use \Illuminate\Support\Collection;
class MenuExport implements FromCollection, WithStyles
{
private $data;
function __construct($data) {
$this->data = $data;
}
public function styles(Worksheet $sheet)
{
$numOfRows = count($this->data);
$totalRow = $numOfRows + 1;
// Add cell with SUM formula to last row
$sheet->setCellValue("B{$totalRow}", "=SUM(B1:B{$numOfRows})");
}
public function collection()
{
// Add new row with Total cell
$extendedArr = [
$this->data,
['Total:']
];
return new Collection($extendedArr);
}
}
生成的excel其实有SUM函数,但是显示的是0。 例如,我用以下数据调用导出器:
$data = [
['Coffee', 1.8],
['Cake', 3.6],
['Toast', 2.5]
];
return Excel::download(new MenuExport($data), "menu.xlsx");
如果我剪切函数单元格内容然后粘贴它 - 我会得到想要的结果:
知道有什么问题吗?
【问题讨论】:
标签: php laravel maatwebsite-excel