这可能吗?还是必须使用thephpleague/csv之类的PHP库?
示例,根据 PhpSpreadsheet 的文档:
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
$spreadsheet = $reader->load($file);
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Csv($spreadsheet);
$writer->setUseBOM(true);
$writer->setDelimiter(',');
$writer->setEnclosure('');
$writer->setLineEnding("\r\n");
$writer->setSheetIndex(0);
$writer->save('test.csv');
正如您看到的那样,这完全适得其反,因为load()
方法需要实际的$file
才能做基本上相同的事情。
是否可以使用PhpOffice\PhpSpreadsheet\Writer\Csv()
而不使用电子表格,而是使用包含CSV数据的字符串?
预先感谢所有积极的意见和建议。
答案 0 :(得分:1)
您无需加载文件,可以直接使用来创建一个空的Spreadsheet对象
$spreadsheet = new PhpOffice\PhpSpreadsheet\Spreadsheet();
中的“ Hello World”示例所示
但是,如果您只想编写一个csv文件,就可以了。那么使用PHP内置的fputcsv()
函数要比设计用来处理具有多个工作表,格式,公式以及使用多种不同文件格式等的真正电子表格的库要好得多。
或者只是写一个已经连接的字符串(您确定已经引用了所有需要引用的内容,并且转义了所有需要转义的内容),只需使用fwrite()
。
具有反效果的功能是建立您自己的csv字符串,然后使用电子表格库编写每一行。