PHPExcel как установить значение ячейки динамически

Как установить значение ячейки / столбца динамически с помощью библиотеки PHPExcel?

Я получаю набор результатов из базы данных MySQL, и я хочу писать данные в формате excel с использованием библиотеки PHPExcel. Пример

$objPHPExcel->getActiveSheet()->setCellValue('A1', 'cell value here'); 

указывает, что нам нужно жестко закодировать ссылку на ячейку / столбец As '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); }