PHPExcel导出乱码问题

php里的文字需要用mb_convert_encoding($string, ‘utf-8‘, ‘gbk‘)转换一下,要不然会出现乱码的情况

$objPHPExcel = new PHPExcel();
            $objPHPExcel->getProperties()->setTitle("定制车专题用户意向");
            //设置当前的sheet
            $objPHPExcel->setActiveSheetIndex(0);
            //设置sheet的name
            $objPHPExcel->getActiveSheet()->setTitle(mb_convert_encoding(‘用户意向‘, ‘utf-8‘, ‘gbk‘));

            $titleArr = array(
                ‘A1‘ => ‘购车人姓名‘,
                ‘B1‘ => ‘购车人电话‘,
                ‘C1‘ => ‘车型‘,
                ‘D1‘ => ‘颜色‘,
                ‘E1‘ => ‘所选配件‘,
                ‘F1‘ => ‘购车省份‘,
                ‘G1‘ => ‘购车城市‘,
                ‘H1‘ => ‘预计提车时间‘,
                ‘I1‘ => ‘创建时间‘,
            );
            foreach ($titleArr as $k => $v) {
                $objPHPExcel->getActiveSheet()->setCellValue($k, mb_convert_encoding($v, ‘utf-8‘, ‘gbk‘));
            }
            $i = 2;
            foreach ($res as $item) {
                //设置单元格的值
                $objPHPExcel->getActiveSheet()->setCellValue(‘A‘ . $i, $item[‘name‘]);
                $objPHPExcel->getActiveSheet()->setCellValue(‘B‘ . $i, $item[‘phone‘]);
                $objPHPExcel->getActiveSheet()->setCellValue(‘C‘ . $i, $item[‘carModuel‘]);
                $objPHPExcel->getActiveSheet()->setCellValue(‘D‘ . $i, $item[‘color‘]);
                $objPHPExcel->getActiveSheet()->setCellValue(‘E‘ . $i, $item[‘parts‘]);
                $objPHPExcel->getActiveSheet()->setCellValue(‘F‘ . $i, $item[‘province‘]);
                $objPHPExcel->getActiveSheet()->setCellValue(‘G‘ . $i, $item[‘city‘]);
                $objPHPExcel->getActiveSheet()->setCellValue(‘H‘ . $i, mb_convert_encoding($item[‘takeoutTime‘] == 0 ? "一个周内" : $item[‘takeoutTime‘] == 1 ? "一个月内" : "三个月内", ‘utf-8‘, ‘gbk‘));
                $objPHPExcel->getActiveSheet()->setCellValue(‘I‘ . $i, empty($item[‘insertTime‘]) ? "--" : date(‘Y-m-d‘, $item[‘insertTime‘]));
                $i++;
            }
            $fileName = sprintf("定制车专题用户意愿%s.xls", date(‘Y-m-dHi‘));
//            $objWriter->save($fileName);
//            直接输出到浏览器
//            $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
            header("Pragma: public");
            header("Expires: 0");
            header("Cache - Control:must - revalidate, post - check = 0, pre - check = 0");
            header("Content-Type:application/force-download");
            header("Content-Type:application/vnd.ms-execl");
            header("Content-Type:application/octet-stream");
            header("Content-Type:application/download");;
            header(sprintf(‘Content-Disposition:attachment;filename="%s"‘, $fileName));
            header("Content-Transfer-Encoding:binary");
            $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel5‘);
            $objWriter->save(‘php://output‘);
时间: 2024-08-30 09:30:49

PHPExcel导出乱码问题的相关文章

phpexcel导出乱码

在输出到浏览器时,要在head前加ob_end_clean();参考此文, ob_end_clean(); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="'.$name.'.xls"'); header('Cache-Control: max-age=0'); $objWriter->save('php://output');

PHPExcel导出excel

如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,例如下面就把$yourStr从utf-8转换成了gb2312: $yourStr = mb_convert_encoding("gb2312", "UTF-8", $yourStr); 总结 php导出Excel php导入Excel PhpExcel使用说明 PhpExcel使用手册 1:第一推荐无比风骚的PHPExcel,官方网站: http://www.codeplex.com/PHPExcel 导入

PHPExcel导出Excel文件

error_reporting(0); require_once 'phpexcel/PHPExcel.php'; require_once 'phpexcel/PHPExcel/IOFactory.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->getProperties()->setCreator("BillHong") ->setLastModifiedBy("BillHong")//创建

phpexcel导出超过26列解决方案

原文:phpexcel导出超过26列解决方案 将列的数字序号转成字母使用,代码如下:  PHPExcel_Cell::stringFromColumnIndex($i); // 从o,1,2,3,..开始,相应返回返回 A,B,C,...Z,AA,AB,...   将列的字母转成数字序号使用,代码如下:   PHPExcel_Cell::columnIndexFromString('AA'); 使用phpexcel导出excel文件的时候,发现报了一个错误,后来查询问题才发现是列数超过26列的问

关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法

原文:关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法 上次在开发一个项目时,用到PHPExcel导出数据,其中有导出身份证等长串数字时导出的Excel中显示为科学计数方式. 这种显示很不人性化而且量多了修改起来也很麻烦. 这是因为Excel处理数字里默认数字太长会转化为科学计数法,处理起来很简单,我们在导出时把数字转为字符串,Excel就不会识别为数字了,也就不会显示为科学计数方式. 我的处理方式是在变量后面加个空格,简单方便. $usercode .= ' '; $

CodeIgniterCodeigniter+PHPExcel导出数据到Excel文件

解压压缩包里的Classes文件夹中的内容到application\libraries\目录下,目录结构如下:--application\libraries\PHPExcel.php--application\libraries\PHPExcel(文件夹)修改application\libraries\PHPExcel\IOFactory.php文件--将其类名从PHPExcel_IOFactory改为IOFactory,遵从CI类命名规则.--将其构造函数改为public $this->loa

让phpexcel导出数据0000

华彩CC网投国际转发:原文为 http://www.kubiji.cn/juhe-id9013.html 摘要:最近做一个php项目的时候,遇到一个问题.功能:使用phpexcel导出数据.问题描述:导出身份证后四位是0000这是因为在excel中如...最近做一个php项目的时候,遇到一个问题. 功能:使用phpexcel导出数据. 问题描述:导出身份证后四位是0000 这是因为在excel中如果在一个默认的格中输入或复制超长数字字符串,它会显示为科学计算法. 方法一:设置单元格为文本$obj

phpExcel导出excel加超级链接的实例代码[转]

phpexcel实现的导出excel文件的代码,且可以在excel文件中加入超级链接. 说明:PHPExcel的开发包Tests目录有详细使用实例.以下代码支持中文,注意文件编码,文件保存为utf-8. 完整代码: 代码示例: <?php//写excel //Include class require_once(‘Classes/PHPExcel.php’); require_once(‘Classes/PHPExcel/Writer/Excel2007.php’); $objPHPExcel

php利用phpexcel导出数据

php中利用phpexcel导出数据的实现代码.对phpexcel类库不熟悉的朋友,可以阅读下<phpexcel中文帮助手册>中的内容,具体实例大家可以phpexcel快速开发指南中的相关例子. 完整代码: public function export_data($data = array()) { # code... include_once(APP_PATH.'Tools/PHPExcel/Classes/PHPExcel/Writer/IWriter.php') ; include_on