你这只是片段,仅从这点是看不到问题的!
因为这个代码片段并没有错!Uncaught exception 'Exception' with message 'A PHPExcel_Worksheet has already been assigned. Drawings can only exist on one PHPExcel_Worksheet.'
是说:一个 PHPExcel_Worksheet_Drawing 实例只能在一个单元格中存在显然你把 $objDrawing 放到 A1 后,又放到了别处

解决方案 »

  1.   

    对呀!
    你的 $objDrawing = new PHPExcel_Worksheet_Drawing();  在循环外面
    而 $objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); 在循环里面
    你如何能保证 $objDrawing = new PHPExcel_Worksheet_Drawing(); 只被这行一次呢?
    虽然是套在条件分支中的,你有如何能保证条件只成立一次呢?你只需把 $objDrawing = new PHPExcel_Worksheet_Drawing(); 放到循环里面,一切都解决了
      

  2.   

    多谢,问题找到,但是xls文档打不开
    代码修改:            if(file_exists($row['nameid'].'_1.jpg')){
    $objDrawing[$k] = new PHPExcel_Worksheet_Drawing(); 
    $objDrawing[$k]->setPath($row['nameid'].'_1.jpg');
    $objDrawing[$k]->setCoordinates("G".$k);
    $objDrawing[$k]->setWorksheet($objPHPExcel->getActiveSheet());
    }