如何使用PHPExcel库动态设置单元格/列的值?
我从MySQL数据库获取结果集,并希望使用PHPExcel库以Excel格式编写数据。查看示例后,我需要动态设置单元格/列的值。
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'cell value here');
提示我们必须将单元格/列引用硬编码为“A1”,然后将其写入单元格/列A1。我如何根据行和相应的列值从结果集中递增单元格/列和/或行引用?
请指教。
如何使用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);
}