php 生成excel空白,phpexcel库在localhost上运行良好,但在服务器中生成空白的excel文件...

这是我的代码,在本地主机上可以很好地使用数据库中的数据生成一个excel文件,但在托管服务器中它会生成一个空白的excel文件:

// Starting the PHPExcel library

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

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

$objPHPExcel = new PHPExcel();

$objPHPExcel->getProperties()->setTitle("export")->setDescription("none");

$objPHPExcel->setActiveSheetIndex(0);

// Field names in the first row

$fields = $query->list_fields();

$col = 0;

foreach ($fields as $field)

{

$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, 1, $field);

$col++;

}

//format the column sizes

$sheet = $objPHPExcel->getActiveSheet();

$cellIterator = $sheet->getRowIterator()->current()->getCellIterator();

$cellIterator->setIterateOnlyExistingCells( true );

/** @var PHPExcel_Cell $cell */

foreach( $cellIterator as $cell ) {

$sheet->getColumnDimension( $cell->getColumn() )->setAutoSize( true );

}

//var_dump($query->result());

//die;

// Fetching the table data

$row = 2;

foreach($query->result() as $data)

{

$col = 0;

foreach($fields as $field)

{

$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $data->$field);

$col++;

}

$row++;

}

$objPHPExcel->setActiveSheetIndex(0);

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

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

header('Content-Disposition: attachment;filename="01simple.xlsx"');

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

ob_clean();

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

解决方法:

我认为问题与phpexcel无关.我早些时候遇到过类似的问题,后来发现CI的list_fields()函数在某些linux服务器中不起作用.您可以通过静态放置字段名称而不是使用此功能来检查此方面.

标签:codeigniter,phpexcel,php

来源: https://codeday.me/bug/20191026/1937839.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值