如何使用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