CI 导出Excel的问题!!!
我的代码导出EXCEL没有任何问题也就是代码里面使用$objWrite->save("E://aaa.xlsx");能正常生产文件也能正常打开,但是如果我的代码改为如下header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="广告排期'.$month.'月.xlsx"');
header('Cache-Control: max-age=0');
$objWrite=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
$objWrite->save("php://output");
也就是输出到浏览器里面,让用户下载。可以下载生成文件,但是就是打不开,打开如图片。下面是我的CI完整的代码
require FCPATH.'static\PHPExcel\PHPExcel.php';
//require FCPATH.'application\libraries\PHPExcel\IOFactory.php';
$this->ad_model->where_in=array('position_id'=>array(1,2));
$list=$this->ad_model->get_all('position_id,cat_id,sort_order');
$week=array('日','一','二','三','四','五','六');
$cat=array('0'=>'首页','1'=>'汽车','2'=>'金融','3'=>'家居','4'=>'旅游','11'=>'阔论');
$styleArray = array('borders' => array('outline' => array('style' => PHPExcel_Style_Border::BORDER_THIN,'color' => array('rgb' => '000000'),),),);
$objPHPExcel=new PHPExcel();//实例化PHPExcel
$objsheet=$objPHPExcel->getActiveSheet();
$objsheet->setTitle('广告排期');
$year=2015;$month=11;
$day=$this->getday($year,$month);
$initial='B';
$today=strtotime(date('Y-m-d').' 00:00:00');
for ($i=1;$i<=$day;$i++)
{
$objsheet->setCellValue($initial.'1',$week);
$objsheet->setCellValue($initial.'2',$i);
$initial++;
}
$j=3;
foreach ($list as $key => $value)
{
if($value['position_id']==1)
{$objsheet->setCellValue('A'.$j,'开屏广告');}
else
{$objsheet->setCellValue('A'.$j,$cat[$value['cat_id']].'轮番图'.$value['sort_order']);}
$j++;
$n='B';
for ($c=1; $c <=$day ; $c++) {
$timestramp=strtotime($year.'-'.$month.'-'.$c.' 00:00:00');
if($timestramp>=$value['start_time']&&$timestramp<=$value['end_time'])
{
if($today>$value['end_time'])
{
//$objsheet->setCellValue($n.$j,'grey');
$objsheet->getStyle($n.$j)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('cdcdcd');
$objsheet->getStyle($n.$j)->applyFromArray($styleArray);
}
else
{
//$objsheet->setCellValue($n.$j,'yellow');
$objsheet->getStyle($n.$j)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('ffcb00');
$objsheet->getStyle($n.$j)->applyFromArray($styleArray);
}
}
else
{
//$objsheet->setCellValue($n.$j,'white');
$objsheet->getStyle($n.$j)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('FFFAFA');
$objsheet->getStyle($n.$j)->applyFromArray($styleArray);
}
$n++;
}
}
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="广告排期'.$month.'月.xlsx"');
header('Cache-Control: max-age=0');
$objWrite=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
$objWrite->save("php://output");
同样我使用PHPExcel的例子一切正常,但是当我把PHPExcel例子弄到CI里面就出现同样的问题。 有点意思
页:
[1]