Skip to content

Commit e2482b2

Browse files
authored
Merge pull request #170 from rakibhoossain/patch-1
CSV stream callback fixed
2 parents ce4b7e6 + 9520756 commit e2482b2

File tree

2 files changed

+38
-5
lines changed

2 files changed

+38
-5
lines changed

README.md

+35
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,41 @@ foreach (range(1, 10_000) as $i) {
376376
$writer->toBrowser();
377377
```
378378

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+
379414

380415
### Writing multiple rows at once
381416

src/SimpleExcelWriter.php

+3-5
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,9 @@ public static function streamDownload(
6767

6868
$writer = $simpleExcelWriter->getWriter();
6969

70-
if ($writerCallback) {
71-
$writerCallback($writer);
72-
}
73-
74-
$writer->openToBrowser($downloadName);
70+
$writerCallback ?
71+
$writerCallback($writer, $downloadName) :
72+
$writer->openToBrowser($downloadName);
7573

7674
return $simpleExcelWriter;
7775
}

0 commit comments

Comments
 (0)