如何使用PHPExcel庫動態設置單元/列值?PHPExcel如何動態設置單元值
我從MySQL數據庫中提取結果集,我想用ExcelExcel庫以excel格式寫數據。綜觀例如
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'cell value here');
表明我們有硬編碼細胞/列引用作爲「A1」,然後將其寫入到細胞/列A1。我如何根據結果集中的行和相應列值來增加單元格/列和/或行引用?
請指導。
如何使用PHPExcel庫動態設置單元/列值?PHPExcel如何動態設置單元值
我從MySQL數據庫中提取結果集,我想用ExcelExcel庫以excel格式寫數據。綜觀例如
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'cell value here');
表明我們有硬編碼細胞/列引用作爲「A1」,然後將其寫入到細胞/列A1。我如何根據結果集中的行和相應列值來增加單元格/列和/或行引用?
請指導。
我asume您已連接到你的數據庫了。
$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);
}
結果可能不是一對一,但是許多數據行寫入到列中,這需要一個循環來遍歷列。 – 2013-03-01 21:52:37
謝謝伊沃薩維耶夫。 – Asif 2010-04-07 11:19:43
不客氣。 – 2010-04-07 13:10:45
手冊中的說明:在PHPExcel列索引中,索引爲0,而行索引爲1。這意味着'A1'〜(0,1) – 2011-02-15 17:16:05