Tag: 进出文件

使用MySQL到OUTFILE来生成Excel可读的UTF8数据

我有一个类似于这个问题的问题 。 那就是 – 我需要将MySQL数据库中的一些UTF8数据导出到MS Excel。 Excel提供的细节: Excel打开UTF8格式的CSV文件作为ANSCI,从而打破 Excel 将正确打开制表符分隔的UTF8文件,但不支持换行符(我的数据有换行符,尽pipe在最坏的情况下我可能会丢失这些) Excel 显然 会打开UTF-16LE(小端)编码的CSV。 不过,据我所知,MySQL INTO OUTFILE不接受内容编码参数,只是默认为数据库编码(UTF8)。 我的networking应用程序是PHP驱动的,但不幸的是我不能使用PHP Excel文件库,因为数据库非常大。 我所有的出口都必须通过MySQL来完成。 如果有人知道如何让MySQL通过Excel跳到这一块,那将会很棒。 非常感谢, 插口 编辑 : 这个答案描述了一个适用于Excel 2007的解决scheme。在文件中添加一个“BOM”,我可以通过附加BOM的PHP脚本将输出文件提供给客户端。 理想情况下,我想find一个解决scheme,在2003年工作也。

MySQL导出到outfile:CSV转义字符

我有一个时间表的数据库表与一些常见的feilds。 id, client_id, project_id, task_id, description, time, date 有更多,但那是它的要点。 我在该表上运行一个导出到CSV文件的导出,以便为用户提供其数据的备份。 它也被用来作为一个macrosExcel文件的数据导入与一些自定义报告。 这一切都与我一起循环使用php的时间表,并打印到一个文件的行。 问题是一个大的数据库可能需要几个小时才能运行,这是不可接受的。 所以我用MySQL INTO OUTFILE命令重写了它,并将其减less到几秒钟,以便运行,这非常棒。 现在的问题是我似乎无法逃避描述字段中的所有新行字符等。 真的,用户可以在这里input潜在的任何字符组合,包括回车/换行。 这是我有的MySQL代码片段: SELECT id, client, project, task, REPLACE(REPLACE(ifnull(ts.description,''),'\n',' '),'\r',' ') AS description, time, date INTO OUTFILE '/path/to/file.csv' FIELDS ESCAPED BY '""' TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM …. 但… 当我尝试查看输出文件的源代码时,文件中仍然存在换行符,因此Excel的CSV导入将打破Excel向导创build的所有花式macros和数据透视表。 任何关于最佳行动的想法?