代码之家  ›  专栏  ›  技术社区  ›  tfont

使用phpspreadsheet从字符串创建csv文件

  •  0
  • tfont  · 技术社区  · 6 年前

    这有可能吗?或者必须使用PHP库,例如 thephpleague/csv ?

    示例,根据 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数据的字符串?

    提前感谢所有积极的意见和建议。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Mark Baker    6 年前

    不需要加载文件,可以使用

    $spreadsheet = new PhpOffice\PhpSpreadsheet\Spreadsheet();
    

    如“Hello World”中的示例所示 PHPSPreadsheet documentation

    但是,如果您只想编写一个csv文件,那么使用php内置的 fputcsv() 函数,而不是设计用于操作具有多个工作表、格式、公式以及使用多个不同文件格式等的真实电子表格的库。

    或者简单地编写一个已经连接的字符串(您确定您引用了所有需要引用的内容,并转义了所有需要转义的内容),只需使用 fwrite() .

    反生产是建立自己的csv字符串,然后使用电子表格库来编写每一行。