PHPExcelライブラリを使用してセル/列の値を動的に設定する方法は?
MySQLデータベースから結果セットを取得していますが、PHPExcelライブラリを使用してExcel形式でデータを書き込みたいです。例を見る
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'cell value here');
は、セル/列参照を「A1」としてハードコーディングする必要があることを示し、セル/列A1に書き込みます。結果セットの行と対応する列値に基づいてセル/列および/または行参照をインクリメントするにはどうすればよいですか?
ガイドしてください。
データベースに既に接続していると思います。
$sql = "SELECT * FROM my_table";
$result = mysql_query($sql);
$row = 1; // 1-based index
while($row_data = mysql_fetch_assoc($result)) {
$col = 0;
foreach($row_data as $key=>$value) {
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value);
$col++;
}
$row++;
}
私はPHPでの作業経験はあまりありませんが、ロジックの観点からはこれが私がやることです。
以下は、この手法を示すいくつかの擬似コードです。
for (int i = 0; i < MySQLResults.count; i++){
$objPHPExcel->getActiveSheet()->setCellValue('A' . (string)(i + 1), MySQLResults[i].name);
// Add 1 to i because Excel Rows start at 1, not 0, so row will always be one off
$objPHPExcel->getActiveSheet()->setCellValue('B' . (string)(i + 1), MySQLResults[i].number);
$objPHPExcel->getActiveSheet()->setCellValue('C' . (string)(i + 1), MySQLResults[i].email);
}