加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHPExcel在AWS上运行代码时写入垃圾字符.

发布时间:2020-12-13 21:50:45 所属栏目:PHP教程 来源:网络整理
导读:我正面临着 PHPExcel excel下载代码的问题.下载代码正在一台服务器上工作(netcore服务器),但是同样的代码集在AWS server上无法工作.任何人都可以帮我弄清楚究竟是什么问题?以下是phpexcel下载代码: error_reporting(E_ALL);ini_set('display_errors',TRUE)
我正面临着 PHPExcel excel下载代码的问题.下载代码正在一台服务器上工作(netcore服务器),但是同样的代码集在AWS server上无法工作.任何人都可以帮我弄清楚究竟是什么问题?以下是phpexcel下载代码:

error_reporting(E_ALL);
ini_set('display_errors',TRUE);
ini_set('display_startup_errors',TRUE);
date_default_timezone_set('Europe/London');

if (PHP_SAPI == 'cli')
    die('This example should only be run from a Web Browser');

/** Include PHPExcel */
require_once '../Classes/PHPExcel.php';


// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

// Set document properties
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
                             ->setLastModifiedBy("Maarten Balliauw")
                             ->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");


// Add some data
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1','Hello')
            ->setCellValue('B2','world!')
            ->setCellValue('C1','Hello')
            ->setCellValue('D2','world!');

// Miscellaneous glyphs,UTF-8
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A4','Miscellaneous glyphs')
            ->setCellValue('A5','éàèùaê?????ü???ü?');

// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('Simple');


// 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)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="01simple.xls"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9,then the following may be needed
header('Cache-Control: max-age=1');

// If you're serving to IE over SSL,then the following may be needed
header ('Expires: Mon,26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: '.gmdate('D,d M Y H:i:s').' GMT'); // always modified
header ('Cache-Control: cache,must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');
$objWriter->save('php://output');

下载Excel文件但使用垃圾/不支持的字符

PKU~AG?D?X?[Content_Types].xml??MN?0??"?%nY ??vAa ?(0???g?w{&i?@?nbE?{??y??d?l m?????X?(???)???F??;@1_?????c)j?x/%??E??y? ?Q?i!??K?

解决方法

我在执行xlsx文件时遇到了这个问题,发现它是一个缓冲区问题.为了解决这个问题,我使用了php输出控制函数ob_end_clean();在保存之前.所以在你的情况下,它看起来像:

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');
ob_end_clean();
$objWriter->save('php://output');

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读