PHPExcel mac os 下中文乱码问题
2012年7月24日
没有评论
在php中使用PHPExcel来生成Excel表格,内容含有中文,window系统下显示正常,mac os的office打开excel显示不出来中文,现象是表格中看到中文显示为方框,但是焦点放在表格上时,上面的显示的又是中文。程序中使用的编码是GBK,由于PHPExcel只支持UTF8,已经在程序中使用iconv进行了转码,所以可以排除编码的问题。百思不得其解,只好借助万能的Google,在一个链接中发现有人说mac os 打开的excel文件出现乱码是由于字体造成的,再次打开乱码的excel文件,发现打开的默认字体为一个英文字体,终于找到原因了,解决问题就很简单了,在生成excel时候强制设置表格使用某种支持中文的字体即可,如宋体,代码如下:
$objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setName('宋体');
注意:如果当前文件的编码不是使用UTF8,需要对’宋体’进行编码转换使之成功UTF8编码。
PHPExcel真是个好东西,功能太强大了,有点小遗憾的是中文文档不全,想要实现某种功能只能借助搜索引擎了。