我正在使用PhpExcel导出csv文件,但是当我用记事本打开它时,它在文本周围显示双引号。我不要这些双引号。谁能帮我?
以下是该文件的演示输出:
"Credits","Modified_User","Plain_Course_Name","Popular_Courses","ISBN_9","ISBN_7","Course_Number","ISBN_8","Book_2_REQUIRED_or_OPTIONAL","ISBN_5","ISBN_6","Course_Status","ISBN_3","ISBN_4","Book_9_REQUIRED_or_OPTIONAL","Bookstore_2_Course_Status","ISBN_2",
Run Code Online (Sandbox Code Playgroud)
生成csv,我使用以下代码:
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'csv');
如果我使用以下代码,则记事本中的输出是正确的,但它将更改excel csv文件中的数据顺序。
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV')->setDelimiter(',')
->setEnclosure('"')
->setLineEnding("\r\n")
->setSheetIndex(0)
->save(__DIR__.'/'.$file_name);
Run Code Online (Sandbox Code Playgroud)
小智 5
因此,据我对PHPExcel的了解,默认情况下,文本附件设置为使用“”,这就是为什么文件中的文本周围带有“”的原因。第二段代码直接满足您的需求,因此您已经接近了!
您应该可以使用$ createWriter-> setEnclosure('')来打印不带双引号的项目。
在您的代码中,看起来像这样:
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV')->setDelimiter(',')
->setEnclosure(' ')
->setLineEnding("\r\n")
->save(__DIR__.'/'.$file_name);
Run Code Online (Sandbox Code Playgroud)
我不确定您是否需要setLineEnding,尤其是如果它是一行。也许为以后的解析您可能会。希望这些信息对您有所帮助!
在其gitHub上有关于此主题的其他文档:https : //github.com/PHPOffice/PHPExcel/blob/develop/Documentation/markdown/Overview/10-Reading-and-Writing.md