data-import
data-import copied to clipboard
ExcelWriter taking SplFileObject as argument and deleting it - unlink issue
ExcelWriter
takes \SplFileObject
as argument in constructor, but use it only to take filename. By default it uses Excel2007
type, which if file exists, unlinks it before reopening it, which results in error since SplFileObject created the file and opened handle on it.
Suggested solution, change ExcelWriter::__constructor to take argument string filename, rathen then
\SplFileObject $file``
$filename = sprintf('%s/%s.xls', sys_get_temp_dir(), sha1(strtotime('now')));
$file = new \SplFileObject($name, 'w');
$result = $workflow
->addWriter(new ExcelWriter($fileObject, null, 'Excel2007'))
->process();
Warning: unlink(C:\Temp/7344836b29cf1d3e8f20a2b4e8aa889ebef69766.xls): Permission denied
in vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007.php at line 229
lib | version |
---|---|
ddeboer/data-import | 0.18.0 |
phpoffice/phpexcel | 1.8.1 |
php | 5.5.19 win32 |
Feel free to open a PR!
The following works for me:
$writer
->prepare()
->writeItem(array('first', 'last'));
unset($file);
$writer->finish();
How does you resolve that problem of export file in excel: Warning : unlink(D:\test\data.xlsx): Permission denied in in vendor\phpoffice\phpexcel\Classes\PHPExcel\Writer\Excel2007.php at line 236 .
`$workflow = new Workflow($reader);
$file = new \SplFileObject('D:\test\data.xlsx', 'w');
$writer = new ExcelWriter($file);
$workflow->addWriter($writer);
$workflow->process();`