public function check_daochu($data) {

ob_end_clean(); //***这里再加一个

$this->load->library('PHPExcel');

$this->load->library('PHPExcel/IOFactory');

$objPHPExcel = new PHPExcel();

$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);

//设置表头

$this->Excel_bt($objPHPExcel, $data['bt_data']);

//导出的类容

$this->Excel_lr($objPHPExcel, $data['data']);

//设置单元格的宽度

$objPHPExcel->getActiveSheet()->getColumnDimension('b')->setWidth(15);

foreach ($data['hb_data'] as $key => $value) {

//合并单元格

$objPHPExcel->getActiveSheet()->mergeCells($key . ':' . $value);

}

//水平垂直居中设置

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

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

$fieldname = iconv('utf-8', 'gb2312', date("Y-m-d", time()) . '_' . $data['bt_data']['A1']);

ob_end_clean();

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('Content-Disposition:attachment;filename="' . $fieldname . '.xlsx"');

header("Content-Transfer-Encoding:binary");

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

}

//设置导出标题的方法

public function Excel_bt($objPHPExcel, $bt_data) {

foreach ($bt_data as $key => $value) {

$objPHPExcel->getActiveSheet()->setCellValue($key, $value);

}

}

//设置导出的内容

public function Excel_lr($objPHPExcel, $select_data) {

$i = 3;

$data = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');

foreach ($select_data as $key => $value) {

$j = 0;

foreach ($value as $k => $v) {

$objPHPExcel->getActiveSheet()->setCellValue($data[$j] . $i, $v);

$j++;

}

$i++;

}

}

生成EXCEL打开文件,报下图的错误?何解呢?(更让人费解的是,同样的代码块在另一个项目中完美运行!)

补充:自己找了问题,做了如下尝试,但是没一个可行的

我生成.txt文件,打开时发现乱码,于是我想到字符编码的问题,于是在check_daochu这个方法中,把data这个数组用iconv函数转换编码,不行!

在头文件里那里加入header("Content-Type:application/vnd.ms-execl;charset=utf-8");,不行!

把另外一个项目中相同的类库和代码块都覆盖过来,不行!

打开.txt文件是这样子的

我擦、问题解决了!!!缓冲区的问题,看了这个文章才有一点明白,我明明在输出前加了ob_end_clean了,但是这还不够,还要在生成excel内容前加一个ob_end_clean,也就是在check_daochu方法的第一行。不知道为什么这里还要加一个,但是问题也已经解决了。

php 生成文件出错,php生成excel文件打开报错?!!!相关推荐

  1. Microsoft word/Excel/PPT打开报错问题

    很多时候我们会发现我们辛辛苦苦从网上.论坛或QQ群等地下载下来的文档.表格.PPT竟然打不开,许多人以为是文件的问题,直接删除了,而身边很多朋友会将此类问题发于我让我一一解答,其实这些问题,网上都有相 ...

  2. python生成的exe程序在其他电脑打开报错_9102年你还不会搭建Python环境

    什么是Python? Python是一门解释性编程语言, 属于弱类型编程语言,语法简洁,比较适合小白的第一门语言.Python的应用领域也是十分广泛,主要有Web开发.网络爬虫.自动化测试.运维.机器 ...

  3. MATLAB生成Excel后写入报错问题

    MATLAB生成Excel后写入报错问题 在我存取输出结果时,报错如图. 搜索解决办法过程中看到不同的说法. 解决办法一**:修改com设置,适用于电脑com端口被占用.** https://blog ...

  4. 手把手教你用Python批量实现文件夹下所有Excel文件的第二张表合并

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 怀君属秋夜,散步咏凉天. 大家好, ...

  5. python处理多个excel文件-python多个excel文件合并成一个sheet

    运营人员需要历年的订单数据,这就需要把多个文件夹下面的excel文件合并到一个sheet中,之前的解决的办法是用VBA把多个excel文件合并成一个表的多个sheet,再把多个sheet合并成一个sh ...

  6. r读取文件夹下的所有csv文件_[R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。...

    解决的问题:需要读取某个大文件夹下所有子文件夹中的excel文件,并汇总,汇总文件中需要包含的2部分的信息:1.该条数据来源于哪个子文件夹:2.该条数据来源于哪个excel文件.最终,按照子文件夹单独 ...

  7. 【Vue 问题】文件流导出为excel无法打开

    问题:文件流导出为excel无法打开 原因:文件流在请求中会被改变格式 解决方法: axios.create({baseURL: baseUrl,responseType: "arraybu ...

  8. pandas合并文件夹下的excel文件

    研究背景: 由于工作中每天需要计算遗留工单,但工单创建的时间不确定,需要导出近半年的数据进行筛选,而系统一次只能到处一个月的数据,格式为excel格式文件,文件大学为10MB左右,每个文件数据量2万行 ...

  9. python打不开xls文件,wps下用vba实现合并文件夹中所有excel文件

    python打不开xls文件,用wps下vba解决问题 用了常用的三种python读写xls文件的方法都报错 xlrd openpyxl pandas 原因 解决方法 用vba实现合并文件夹中所有ex ...

  10. 【Matlab】将.mat文件转换为多个excel文件

    将.mat文件转换为多个excel文件 最近在准备毕业论文,需要用到matlab,但是之前没学过,自己总结一些不太会的内容,有什么问题欢迎大佬们指导,感谢观看. 起因是想做BP神经网络的内容,尝试找代 ...

最新文章

  1. Spring Cloud第十四篇: 服务注册(consul)
  2. 50岁,他希望自己还可以写代码
  3. java8 CompletableFuture异步编程
  4. 浅谈DNS体系结构:DNS系列之一
  5. 心态很容易受别人影响_为什么说缠论中的走势中枢容易影响短线买卖交易心态?...
  6. Mysql 5.7.10以上版本安装大坑
  7. IE8兼容性问题的解决方案
  8. SAP License:从前台接待看企业文化
  9. SAP License:SD应用要点
  10. lol游戏挂机软件_“本不想挂机,但系统不让重连!”LOL成“挂机联盟”,5局3挂机...
  11. 华龙电音基调网_华龙电音基调查询器下载(最好用的电音基调查询器) v1.4免费版...
  12. DXVA视频硬件加速
  13. 自己制作深度学习数据集教程
  14. adm单master节点
  15. 工业相机和镜头选型技巧
  16. Spring框架中的单例Bean是线程安全的么?
  17. javascript获取本周、本月、本季度、本年时间
  18. Spring事务抛出Exception异常不回滚
  19. 销售的1000+篇文章总结
  20. GitHub开源协议详解及常用协议介绍

热门文章

  1. 最新微信ipad协议 CODE获取 公众号授权等
  2. 多智能体强化学习- COMA
  3. HTML语言分栏左右比例怎么调整,wps怎么设置分栏排版?
  4. oracle监听生成trace,监听器控制程序lsnrctl跟踪trace file
  5. puzzle(0151)《24点》
  6. ZONe Energy Programming Contest E - Sneaking (最短路)
  7. 使用jsonp跨域调用百度js实现搜索框智能提示,并实现鼠标和键盘对弹出框里候选词的操作【附源码和在线测试地址】
  8. python中sqrt(4)*sqrt(9)_Python表达式sqrt(4)*sqrt(9)的值为()
  9. alsa 麦克风采集音频
  10. Ubuntu bpy(blender)的pip安装