我正在努力使用 Laravel-Excel 3.1。我无法修改文件。我的文件有两张纸(称为模板)。我想加载文档,修改它并让用户下载它。
Excel文件不是我创建的,我只需要用数据填充它。例如从这个:
到这个:
谢谢你。
好吧,不确定这是否仍然有用,但这里有一些代码可以做到这一点。
use Maatwebsite\Excel\Excel;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\BeforeExport;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\RegistersEventListeners;
class TestExport implements WithEvents
{
use Exportable, RegistersEventListeners;
public static function beforeExport(BeforeExport $event)
{
// get your template file
$event->writer->reopen(new \Maatwebsite\Excel\Files\LocalTemporaryFile(storage_path('app/exports/report-front-page.xlsx')),Excel::XLSX);
$event->writer->getSheetByIndex(0);
// fill with information
$event->getWriter()->getSheetByIndex(0)->setCellValue('A1','Some Information');
$event->getWriter()->getSheetByIndex(0)->setCellValue('G4', 'Some Information');
return $event->getWriter()->getSheetByIndex(0);
}
}
使用excel包
use Excel;
在这里你可以传递数据
$getdata = values from database or directly get from user.
$headings= you have to pass heading of each column
将数据导出到excel
public function getExport($get_data, $headings)
{
Excel::create(('excel name', function ($excel) use ($get_data, $headings) {
$excel->sheet('Sheet 1', function ($sheet) use ($get_data, $headings) {
$sheet->fromArray($get_data, null, 'A1', false, false);
$sheet->prependRow(1, $headings);
});
})->export('xls');
}