PHPExcel come impostare il valore della cella in modo dinamico

Come impostare dynamicmente il valore di cella / colonna usando la libreria PHPExcel?

Sto recuperando il set di risultati dal database MySQL e voglio scrivere i dati in formato excel usando la libreria PHPExcel. Guardando l'esempio

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

indica che dobbiamo codificare il riferimento di cella / colonna del codice hard come "A1", quindi scrive nella cella / colonna A1. Come posso aumentare il riferimento di cella / colonna e / o row in base alle righe e ai valori di colonna corrispondenti dal set di risultati?

Per favore guida.

Ho appena ti sei già collegato al tuo database.

 $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++; } 

Non ho molta esperienza di lavoro con PHP ma da un punto di vista logico questo è quello che farei.

  1. Passa attraverso il tuo set di risultati da MySQL
  2. In Excel dovresti già sapere quali A, B, C dovrebbero essere perché quelle sono le colonne e sai quante colonne stai restituendo.
  3. Il numero di row può essere incrementato each volta attraverso il ciclo.

Di seguito è riportto uno pseudocodice che illustra questa tecnica:

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