有几点需要注意的:
图片是放到单元格里的,这就需要设置单元格的大小,使之能够放得下去
getColumnDimension 作用于整列,不能对单独的单元格设置宽度。同样高度设置是对整行的$objPHPExcel->getActiveSheet()->getColumnDimension('D'.$rowix)->setWidth(150);
显然不存在这样的列

解决方案 »

  1.   

    怎么能删呢?
    应写作
    $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(150);相反
    $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setAutoSize(true);
    这句应该删去!
    自动列宽不又把列宽设回标题的宽度了吗?考虑到列宽只需设置一次,所以循环中的
    $objPHPExcel->getActiveSheet()->getColumnDimension('D'.$rowix)->setAutoSize(true);   
    $objPHPExcel->getActiveSheet()->getColumnDimension('D'.$rowix)->setWidth(150); //设置D列,图片列为150的宽度
    都该删去
    最后统一设置列宽
    $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setAutoSize(true);
    $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setAutoSize(true);
    $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setAutoSize(true);
    $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(150);
    $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setAutoSize(true);;