php输出excel乱码的解决办法:首先打开相应的PHP文件;然后在“header()”前面加上“ob_end_clean()”函数,清除缓冲区即可解决乱码问题。

本文操作环境:Windows7系统、PHP7.1、Dell G3电脑。

完美解决phpexcel导出到xls文件出现乱码的问题

下面小编就为大家带来一篇完美解决phpexcel导出到xls文件出现乱码的问题。

解决方法如下所示:<?php

include 'global.php';

$ids = $_GET['ids'];

$sql = "select * from crm_cost_end where id in ( {$ids} )";

$result = $db->findAll($sql);

//echo $result[1]['sn'];

//创建一个excel对象

$objPHPExcel = new PHPExcel();

// Set properties

$objPHPExcel->getProperties()->setCreator("ctos")

->setLastModifiedBy("ctos")

->setTitle("Office 2007 XLSX Test Document")

->setSubject("Office 2007 XLSX Test Document")

->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")

->setKeywords("office 2007 openxml php")

->setCategory("Test result file");

//set width

$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(8);

$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(10);

$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(25);

$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);

$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(50);

$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(10);

$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(12);

$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(12);

$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(12);

$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(30);

//设置行高度

$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(22);

$objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(20);

//set font size bold

$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(10);

$objPHPExcel->getActiveSheet()->getStyle('A2:J2')->getFont()->setBold(true);

$objPHPExcel->getActiveSheet()->getStyle('A2:J2')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle('A2:J2')->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

//设置水平居中

$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);

$objPHPExcel->getActiveSheet()->getStyle('A')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle('B')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle('D')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle('F')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle('G')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle('H')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle('I')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

//

$objPHPExcel->getActiveSheet()->mergeCells('A1:J1');

// set table header content

$objPHPExcel->setActiveSheetIndex(0)

->setCellValue('A1', '订单数据汇总 时间:' . date('Y-m-d H:i:s'))

->setCellValue('A2', '订单ID')

->setCellValue('B2', '下单人')

->setCellValue('C2', '客户名称')

->setCellValue('D2', '下单时间')

->setCellValue('E2', '需求机型')

->setCellValue('F2', '需求数量')

->setCellValue('G2', '需求交期')

->setCellValue('H2', '确认BOM料号')

->setCellValue('I2', 'PMC确认交期')

->setCellValue('J2', 'PMC交货备注');

// Miscellaneous glyphs, UTF-8

for ($i = 0; $i < count($result) - 1; $i++) {

$objPHPExcel->getActiveSheet(0)->setCellValue('A' . ($i + 3), $result[$i]['id']);

$objPHPExcel->getActiveSheet(0)->setCellValue('B' . ($i + 3), $result[$i]['realname']);

$objPHPExcel->getActiveSheet(0)->setCellValue('C' . ($i + 3), $result[$i]['customer_name']);

$objPHPExcel->getActiveSheet(0)->setCellValue('D' . ($i + 3), $OrdersData[$i]['create_time']);

$objPHPExcel->getActiveSheet(0)->setCellValue('E' . ($i + 3), $result[$i]['require_product']);

$objPHPExcel->getActiveSheet(0)->setCellValue('F' . ($i + 3), $result[$i]['require_count']);

$objPHPExcel->getActiveSheet(0)->setCellValue('G' . ($i + 3), $result[$i]['require_time']);

$objPHPExcel->getActiveSheet(0)->setCellValue('H' . ($i + 3), $result[$i]['product_bom_encoding']);

$objPHPExcel->getActiveSheet(0)->setCellValue('I' . ($i + 3), $result[$i]['delivery_time']);

$objPHPExcel->getActiveSheet(0)->setCellValue('J' . ($i + 3), $result[$i]['delivery_memo']);

$objPHPExcel->getActiveSheet()->getStyle('A' . ($i + 3) . ':J' . ($i + 3))->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle('A' . ($i + 3) . ':J' . ($i + 3))->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

$objPHPExcel->getActiveSheet()->getRowDimension($i + 3)->setRowHeight(16);

}

// Rename sheet

$objPHPExcel->getActiveSheet()->setTitle('订单汇总表');

// Set active sheet index to the first sheet, so Excel opens this as the first sheet

$objPHPExcel->setActiveSheetIndex(0);

// Redirect output to a client's web browser (Excel5)

ob_end_clean();//清除缓冲区,避免乱码

header('Content-Type: application/vnd.ms-excel');

header('Content-Disposition: attachment;filename="订单汇总表(' . date('Ymd-His') . ').xls"');

header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

$objWriter->save('php://output');

?>

在header() 前面加上ob_end_clean() 函数,清除缓冲区, 这样就不会乱码了!

【推荐:《PHP视频教程》】

php require 输出乱码,php输出excel乱码怎么办相关推荐

  1. Python 抓取网页乱码问题 以及EXCEL乱码

    import codecs f1=codecs.open('items.json', 'r', encoding='utf-8').read().decode("unicode_escape ...

  2. java输出csv文件在excel中显示乱码

    2019独角兽企业重金招聘Python工程师标准>>> 输出了utf-8的csv文件,在excel显示乱码,后来百度,查到缺少bom标志;需要其在文件输出之前先输出bom标志. os ...

  3. 解决java以UTF-8输出中文时,Excel打开多语言文件乱码但是记事本打开却正常的问题

    解决java以UTF-8输出中文时,Excel打开多语言文件乱码但是记事本打开却正常的问题 public static boolean exportCsv(File file, List dataLi ...

  4. php 页面上显示xls文档,phpExcel输出xls文档显示乱码的解决方法

    phpExcel输出xls文档显示乱码的解决办法 最近在做一些报表的系统,主要是对excel的读取和处理操作. 之前在自己的机器上做开发的时候,没有出现乱码的情况, 即使是我布置到服务器上,导入,导出 ...

  5. php打印出来乱码_PHP输出中文乱码的解决方法(转载)

    最近在windows上发现PHP程序中输出来的中文有乱码的情况. 看了很多帖子资料说可以在页面上添加: http://www.cnblogs.com/leandro/archive/2008/04/2 ...

  6. 【开发环境】Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | \r\n换行 | Runtime 执行 Cmd 命令 )

    文章目录 Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 1.生成 bat 脚本注意事项 2.Java 执行 Cmd 命令 3.完整代码示例 4.执行结果 Java 文件生成 ...

  7. python画图显示中文乱码_解决Python pandas plot输出图形中显示中文乱码问题

    解决方式一: import matplotlib #1. 获取matplotlibrc文件所在路径 matplotlib.matplotlib_fname() #Out[3]: u'd:\\Anaco ...

  8. python3 输出中文、日文等等乱码问题的解决办法

    python3 输出中文.日文等等乱码问题的解决办法 参考文章: (1)python3 输出中文.日文等等乱码问题的解决办法 (2)https://www.cnblogs.com/loren88089 ...

  9. 解决使用Ajax 前台提交表单到后台,但输出为问号的中文乱码情况

    解决使用Ajax 前台提交表单到后台,但输出为问号的中文乱码情况 情况如下: 在web.xml文件中已经配置了,如下的spring的Filter <filter><filter-na ...

最新文章

  1. struts2教程(6)--国际化处理
  2. weblogic创建域后启动不了_摩托车淋雨后启动不了什么原因?如何解决?
  3. linux操作系统之竞态条件(时序竞态)
  4. Linux文件系统结构
  5. [翻译] ASP.NET MVC Framework控制器操作安全性
  6. Java_基础—List集合存储学生对象并遍历
  7. android代码设置点击涟漪,android – 为自定义CompoundButton添加涟漪效果
  8. 节假日查询API接口上线
  9. 【Excel从头开始】-2 快速填充/快速分析
  10. Linux系统GPU压力测试
  11. 苹果开发者申请-创建证书签名请求
  12. idea去掉拼写检查
  13. Android系统驱动介绍
  14. mysql不能使用 mysql -u root -p 启动报错解决
  15. C++经典算法题-循序搜寻法(使用卫兵)
  16. vue3.0的多种写法,你喜欢哪种呢?
  17. Nginx防止大流量攻击,限制流量访问(limit_req_zone模块)以及进行网站压力测试
  18. 五种蓝牙耳机,到底谁才是你的菜
  19. mysql 主键 sql语句_Mysql 增加主键或者修改主键的sql语句操作
  20. 翻转——C++青少年一级考资料

热门文章

  1. .NET应用跨域问题解决方案
  2. Jzoj P4253 QYQ在艾泽拉斯___强连通分量缩点+拓扑序dp
  3. 安装keepalived所需rpm包安装顺序以及离线下载rpm包方式
  4. STM32寄存器_GPIO操作
  5. 编写USB鼠标驱动程序
  6. 麻雀搜索算法(SSA)文章复现:《融合K_means的多策略改进麻雀搜索算法研究_欧阳城添》
  7. jenkins安装插件使用清华源
  8. Redis 哨兵模式实现主从故障互切换
  9. 如何理解静态语言和动态语言
  10. 每个苹果0.8元,第一天买两个苹果,第二天开始,每天买前一天的2倍,直至购买的苹果个数达到不超过100的最大值,编写程序求每天平均花费多少钱?