我正在使用带有XLS文件的SELECT INTO OUTFILE查询
"SELECT * INTO OUTFILE " . "myfile.xls" . " FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' FROM transactions where ppno like '%$cid%'
我使用XLS文件而不是CSV。这有什么不对吗?当我尝试在Microsoft Excel中打开该XLS文件时,它说'文件格式不同,你确定要打开'... Plz建议我
答案 0 :(得分:3)
正如Piskvor和Devart所说,只是给文件扩展名为.xls并不会使它成为Excel文件....生成的文件内容仍然只是一个以制表符分隔的值文件,因为你的SQL语句使明确
FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
如果您想在PHP脚本中创建真实 Excel文件,您也可以(例如)格式化您导出的数据,那么您需要使用库等作为我自己的PHPExcel,或this thread中列出的其他人之一。
答案 1 :(得分:2)
是的,这确实有问题。也就是说,您只是更改文件名 - 这不足以自动将您的数据转换为适当的数据格式(换句话说,“任何其他名称的玫瑰都会闻起来很香味”)。请注意,Excel实际上告诉你,在错误消息中。
SELECT INTO OUTFILE
不支持Excel文档。您需要a)导出为CSV,然后转换,或b)获得具有此导出功能的工具(例如phpMyAdmin或Navicat)。
答案 2 :(得分:2)
可以设置任何文件扩展名。实际上xls是Excel试图读取的二进制OLE文件。 SELECT INTO OUTFILE生成文本文件,尝试使用CSV或TXT扩展名存储文件。在这种情况下,Excel将正确打开文件。