繁体   English   中英

PHPExcel如何动态设置单元格值

[英]PHPExcel how to set cell value dynamically

如何使用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的经验,但从逻辑的角度来看,这就是我要做的。

  1. 循环遍历MySQL的结果集
  2. 在Excel中,您应该已经知道A,B,C应该是什么,因为这些是列,您知道要返回多少列。
  3. 每次循环时行号都可以递增。

下面是一些说明这种技术的伪代码:

    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);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM