在处理数据的过程中,我们可能会需要从数据库导出许多数据并存为一个excel表,当需要导出的数据恰好在一个表里的时候,只需使用sql语句select column1 as A,column2 as B... from table_name where condition,然后点击导出就可以导出为excel表格。但是我们需要的数剧大部分是存在不同表里面的,需要通过很复杂的查找才能查出来,这样的情况使用mysql语句将会很难操作。由于项目原因,我需要从数据库里面导出一个表,这个表内的所有信息要从总共5个表里查找出来,而且中间有条件判断,要用mysql写的话,以我现学的知识是不太会,某位大神教我个法子,用thinkphp5来导出。

这就需要使用提到一种叫csv的格式,这个格式以纯文本形式存储表格数据,不同列之间用“,"隔开,行之间用换行符隔开。csv文件能直接使用excel工具打开,然后可以另存为表格。

所以完成数据导出的关键就是输出csv格式的文本。在这里我使用的是tp5,利用以下格式输出,其中$item中已经做过处理,存储着当前行所需要输出的数据。记住最后要加换行符。

 echo $item['1'].",".$item['2'].",".$item['3'].",".$item['4'].","....."\n";

那么在获得了文本以后,另存为txt文档,需要已ANSI格式存储为后缀为scv的文件,之后就可以利用excel打开,自己添加表头另存为xml文件了。