システム上のユーザーに関する行を表示するHTMLテーブルがあります。これらの行は、ダウンロード可能なExcelスプレッドシートにも書き込まれます。まったく同じ情報をスプレッドシートに送信されますスプレッドシートに書き込むときにPHPExcelが行をスキップする
$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=' ';
}
else{
$sp_amnt=$amnt;
if(is_numeric($amnt)){
$amnt='£'.$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');
HTMLテーブルが正しく出てきますが、スプレッドシートが行が欠落しています。
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 |
スプレッドシートテーブル:私は完全に困惑してい
Paula Ilott | [email protected] | 087xxxxxx | 04-04-2016 | | | | | | | | |
---------------------------------------------------------------
Nicolette Middleton | [email protected] | +44xxxxxxxxx | 11-02-2016 | | 0 | | | | | 31-03-2016 | 31-03-2017 |
。
別の問題として、支払い額はスプレッドシート(上記の例では53.00)で常に「0」ですが、この不一致が解消されればそれを調査します。