PHPExcel trascina le righe quando si scrive in un foglio di calcolo

Ho una tabella HTML che visualizza righe sugli utenti sul sistema. Queste righe sono scritte anche in un foglio di calcolo Excel che è scaricabile. Esattamente le stesse informazioni vengono inviate al foglio di calcolo:

$row=2; $odd=''; foreach($feedata as $user_data){ $col=1; $name=$user_data['first_name'].' '.$user_data['surname']; $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col++, $row, $name); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col++, $row,$user_data['email']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col++, $row, $user_data['phone']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col++, $row, $user_data['regdate']); $odd=($odd=='even')?'odd':'even'; echo ' <tr class="<?php echo $odd;?>"> <td> <a href="'.$URI.'?userid='.$user_data['id'].'"> '.$name.' </a> </td> <td> <a href="#self" onclick="showmailform(\''.$name.'\',\''.$user_data['email'].'\');return false;"> '.$user_data['email'].' </a> </td> <td> '.$user_data['phone'].' </td> <td> '.$user_data['regdate'].' </td> '; for($i=2015;$i<$subscriptions;$i++){ $amnt=$user_data[$i]; $sp_amnt=''; if(!$amnt){ $amnt='&nbsp;'; } else{ $sp_amnt=$amnt; if(is_numbersc($amnt)){ $amnt='&pound;'.$amnt; } } $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col++, $row, $sp_amnt); $cellname=chrono_char($col).$row; # $objPHPExcel-getStyle($cellname)->getNumberFormat()->setFormatCode($currencyFormat); echo ' <td>'.$amnt.' </td>'; } $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col++, $row, $user_data['paid_upto']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col++, $row, $user_data['paymentEA']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col++, $row, $user_data['paymentHWSA']); $row++; echo ' <td>'.$user_data['paid_upto'].'</td> <td>'.$user_data['paymentEA'].'</td> <td>'.$user_data['paymentHWSA'].'</td> </tr> '; } echo '</table>'; $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); echo 'Download excel version of the report <a href="'.plugins_url('chrono_reg/tmp/').'subscriptions.xls">HERE.</a>'; renderEmailForm(); $excelfilename=$pldir.'tmp/subscriptions.xls'; $objWriter->save($excelfilename); chmod($excelfilename, 0664); chown($excelfilename,'www-data'); 

La tabella HTML esce correttamente, ma il foglio di lavoro manca le righe.

Tabella HTML:

 Paula Ilott | [email protected] | 087xxxxxx | 04-04-2016 | | | | | | | | | --------------------------------------------------------------- Damian Jesson | [email protected] | 01708 xxxx xxx | 23-05-2016 | | | | | | | | | --------------------------------------------------------------- Nicolette Middleton | [email protected] | +44xxxxxxxxxxx | 11-02-2016 | | £53.00 | | | | | 31-03-2016 | 31-03-2017 | 

Tabella dei fogli di calcolo:

 Paula Ilott | [email protected] | 087xxxxxx | 04-04-2016 | | | | | | | | | --------------------------------------------------------------- Nicolette Middleton | [email protected] | +44xxxxxxxxx | 11-02-2016 | | 0 | | | | | 31-03-2016 | 31-03-2017 | 

Sono completamente sconcertato.

Come emissione separata, l'importo del pagamento è sempre "0" nel foglio di calcolo (è 53.00 nell'esempio precedente), ma cercherò che una volta che questa discrepanza sia stata risolta.

Ho riscritto il codice e sembra funzionare adesso.

Sono onestamente in perdita per vedere cosa è stato sbagliato.

Il codice riportto sopra non era proprio quello che avevo come faccio un po 'di modifica per rendere la questione più chiara. E 'stato originariamente in HTML con <? Php echo $ name;?> Invece di utilizzare echo' <td> '. $ Name.' </ Td> '; come ho fatto sopra.

Ecco come ha visto il codice originale:

 $row=2; $odd=''; foreach($feedata as $user_data){ $col=1; $name=$user_data['first_name'].' '.$user_data['surname']; $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col++, $row, $name); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col++, $row,$user_data['email']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col++, $row, $user_data['phone']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col++, $row, $user_data['regdate']); $odd=($odd=='even')?'odd':'even';?> <tr class="<?php echo $odd;?>"> <td> <a href="<?php echo $URI.'?userid='.$user_data['id'];?>"> <?php echo $name;?> </a> </td> <td> <a href="#self" onclick="showmailform('<?php echo $name."','".$user_data['email'];?>');return false;"> <?php echo $user_data['email'];?> </a> </td> <td> <?php echo $user_data['phone'];?> </td> <td> <?php echo $user_data['regdate'];?> </td> <?php for($i=2015;$i<$subscriptions;$i++){ $amnt=$user_data[$i]; $sp_amnt=''; if(!$amnt){ $amnt='&nbsp;'; } else{ $sp_amnt=$amnt; if(is_numbersc($amnt)){ $amnt='&pound;'.$amnt; } } $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col++, $row, $sp_amnt); $cellname=chrono_char($col).$row; # $objPHPExcel-getStyle($cellname)->getNumberFormat()->setFormatCode($currencyFormat); echo ' <td>'.$amnt.' </td>'; } $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col++, $row, $user_data['paid_upto']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col++, $row, $user_data['paymentEA']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col++, $row, $user_data['paymentHWSA']); $row++;?> <td><?php echo $user_data['paid_upto'];?></td> <td><?php echo $user_data['paymentEA'];?></td> <td><?php echo $user_data['paymentHWSA'];?></td> </tr><?php } echo '</table>'; 

Mi dispiace se ho sprecato tempo di nessuno su questo; Avrei dovuto provare il codice modificato prima di inviarla.