<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">这段时间做项目需要把数据库中的数据导出到excel(.xls)文件中。因为是在法国实习,所以处理的语言都是法语(带声调的字母)。个人不是太喜欢用第三方library,感觉很多语言原生代码就可以解决问题。</span>
之前在网上找到方法说是直接加入header数码集就可以直接导出excel文件,但是这个方法导出的文件一直有乱码的问题,乱码仅仅出现在带有声调的字母上。起初以为是三方编码不统一的缘故(前端数据输入编码,数据库编码以及导出编码),但后来确定这三个编码都是utf-8。也有试着使用iconv()函数将导出数据转成Latin1编码(法语专用编码),但无奈excel不支持这种编码格式。
导出csv文件却没有乱码问题,再通过excel导入csv数据依旧不会出现乱码,但是csv文件不利于浏览和打印。实在没办法就写了个php文件将csv分隔符变为#,然后使用excel导入的时候通过‘#’分割字符串到每一个excel单元格。但是老板感觉这样太麻烦了,所以今天又重新开始在网上找方法,后来看到一片博文上的方法蛮不错的,他是解决中文乱码问题,但是因为他是直接导入html文件到excel,所以无论什么语言,只要你的网页上没有出现乱码,在excel中就不会出现乱码,而且格式也不会有变化,相当方便,而且没有使用第三方插件。
下来介绍方法:
1. 首先在php文件开头加入he