File tree 2 files changed +38
-5
lines changed
2 files changed +38
-5
lines changed Original file line number Diff line number Diff line change @@ -376,6 +376,41 @@ foreach (range(1, 10_000) as $i) {
376
376
$writer->toBrowser();
377
377
```
378
378
379
+ You could also use a callback.
380
+
381
+ ``` php
382
+ use Spatie\SimpleExcel\SimpleExcelWriter;
383
+ use OpenSpout\Common\Entity\Row;
384
+
385
+ $writer = SimpleExcelWriter::streamDownload('user-list.xlsx', function ($writerCallback, $downloadName) {
386
+
387
+ $writerCallback->openToBrowser($downloadName);
388
+
389
+ $writerCallback->addRow(Row::fromValues([
390
+ 'first_name' => 'First Name',
391
+ 'last_name' => 'Last Name',
392
+ ]));
393
+
394
+ $writerCallback->addRow(Row::fromValues([
395
+ 'first_name' => 'Rakib',
396
+ 'last_name' => 'Hossain',
397
+ ]));
398
+
399
+ foreach (range(1, 10_000) as $i) {
400
+ $writerCallback->addRow(Row::fromValues([
401
+ 'first_name' => 'Rakib',
402
+ 'last_name' => 'Hossain',
403
+ ]));
404
+
405
+ if ($i % 1000 === 0) {
406
+ flush();
407
+ }
408
+ }
409
+ });
410
+
411
+ $writer->toBrowser();
412
+ ```
413
+
379
414
380
415
### Writing multiple rows at once
381
416
Original file line number Diff line number Diff line change @@ -67,11 +67,9 @@ public static function streamDownload(
67
67
68
68
$ writer = $ simpleExcelWriter ->getWriter ();
69
69
70
- if ($ writerCallback ) {
71
- $ writerCallback ($ writer );
72
- }
73
-
74
- $ writer ->openToBrowser ($ downloadName );
70
+ $ writerCallback ?
71
+ $ writerCallback ($ writer , $ downloadName ) :
72
+ $ writer ->openToBrowser ($ downloadName );
75
73
76
74
return $ simpleExcelWriter ;
77
75
}
You can’t perform that action at this time.
0 commit comments