在mysql中使用SELECT INTO OUTFILE命令保存XLS文件

即时通讯使用SELECT INTO OUTFILE查询与XLS文件

"SELECT * INTO OUTFILE " . "myfile.xls" . " FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' FROM transactions where ppno like '%$cid%' 

我使用XLS文件而不是CSV。 这有什么问题吗? 当我尝试在Microsoft Excel中打开该XLS文件它说'该文件是在不同的格式,你确定要打开'… PLZbuild议我

正如Piskvor和Devart所说,简单地给一个文件扩展.xls实际上并不是一个Excel文件….生成的文件内容仍然只是一个制表符分隔的值文件,因为你的SQL语句清楚

 FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' 

如果你想从你的PHP脚本中创build一个真正的 Excel文件,你也可以(例如)格式化你要导出的数据,那么你需要使用一个库,比如我自己的PHPExcel ,或者其他的库在这个线程列出。

是的,这确实是有问题的。 也就是说, 你只是改变文件名 – 这不足以自动将你的数据转换成适当的数据格式(换句话说,“任何其他名字的玫瑰都会闻到甜蜜的味道”)。 请注意,Excel实际上在错误消息中告诉你这一点。

SELECT INTO OUTFILE不支持Excel文档。 您需要a)导出为CSV,然后进行转换,或b)获得具有此导出function的工具(例如phpMyAdmin或Navicat)。

可以设置任何文件扩展名。 实际上,xls是Excel尝试读取的二进制OLE文件。 SELECT INTO OUTFILE生成文本文件,尝试使用CSV或TXT扩展名存储文件。 在这种情况下,Excel将正确打开文件。