php无法清除缓冲区怎么解决,php – 无法删除缓冲区 没有缓冲区要删除

我正在尝试从下面的代码生成一个扩展名为.xlsx的excel文件。我可以很好地下载文件,但是当我打开Excel表单时,我收到以下警告错误。Excel无法打开文件’dindi.xlsx’,因为文件格式或文件扩展名无效。确保文件没有损坏,文件扩展名与文件的格式相符。

当我用记事本打开它时,该文件出现以下错误:

Notice: ob_end_clean() [ref.outcontrol]: failed to delete buffer. No buffer to delete

以下是我正在尝试做的代码。

public function exportResults() {

$this -> load -> database();

$query = $this -> db -> query("

SELECT * FROM farm LIMIT 10");

$results = $query -> result_array();

$objPHPExcel = new Excel();

$objReader = PHPExcel_IOFactory::createReader('Excel2007');

$objPHPExcel = $objReader->load('./files/farmdetails.xlsx');

$objPHPExcel ->getActiveSheet()->setTitle('farmreport');

$objPHPExcel -> setActiveSheetIndex(0);

$i = 1;

foreach ($results as $result) {

$objPHPExcel -> getActiveSheet() -> SetCellValue('A' . $i, $result["name"]);

$objPHPExcel -> getActiveSheet() -> SetCellValue('B' . $i, $result["dateofcontract"]);

$objPHPExcel -> getActiveSheet() -> SetCellValue('C' . $i, $result["leasorname"]);

$objPHPExcel -> getActiveSheet() -> SetCellValue('D' . $i, $result["acre"]);

$objPHPExcel -> getActiveSheet() -> SetCellValue('E' . $i, $result["zone"]);

$i++;

echo $result["name"];

}

ob_end_clean();

$filename = "dindi.xlsx";

header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

header("Cache-Control: no-store, no-cache, must-revalidate");

header("Cache-Control: post-check=0, pre-check=0", false);

header("Pragma: no-cache");

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');

header('Content-Disposition: attachment;filename=' . $filename);

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

ob_end_clean();

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

$objPHPExcel -> disconnectWorksheets();

unset($objPHPExcel);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值