2016-12-16 17:45:19 3705次浏览 6条回答 0 悬赏 10 金钱

基于 Yii2 框架写 excel 导出接口,使用的是 phpExcel 扩展,
$objectWrite->save('php://output') 不弹出窗口选择保存路径,而且出现乱码。
但是 $objectWrite->save(具体地址); 文件会保存到具体的文件夹里而且没有错误。

补充于 2016-12-20 14:40

返回的是二进制文件,前端通过 ajax 请求,content-type 依旧是 json;没能根据设置返回 'Content-Type: application/vnd.ms-excel'

亿速云

最佳答案

  • yii修 发布于 2016-12-19 09:25 举报
    ob_end_clean();
    $filename = date('Y-m-d',time()).rand(100,999);
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="'.$filename.'.xls"');
    header('Cache-Control: max-age=0');
    $objWriter = \PHPExcel_IOFactory::createWriter($objectPHPExcel,'Excel5');
    $objWriter->save('php://output');
    exit;
    

    之前也碰到过这问题,后来不知道怎么就好了。这是我最后的输出,希望可以帮助你。

  • 回答于 2016-12-17 00:25 举报

    之前用过tp导出数据也是数据导出有乱码,最后在导出前加上ob_clean() 就好了

    1 条回复
    回复于 2016-12-18 19:29 回复

    是有一个这个方法,我的是在页面中不弹出保存文件的框,直接打印看不懂的二进制文件

  • 回答于 2017-01-04 16:28 举报

    可以自己设置保存名字的

  • 回答于 2017-07-19 11:10 举报

    貌似是跟保存Excel的软件有关

  • 回答于 2017-08-29 00:10 举报

    csv格式和excel是可以部分互通的,建议如果满足需求可以考虑csv保存。

  • 回答于 2020-03-26 10:23 举报

    PHPExcel挺好。应该不用。

您需要登录后才可以回答。登录 | 立即注册
yyf
经理

yyf 上海

注册时间:2016-11-16
最后登录:2020-03-20
在线时长:20小时51分
  • 粉丝6
  • 金钱1190
  • 威望40
  • 积分1790

热门问题