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

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

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

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

указывает, что мы должны трудно кодировать ссылку ячейки/столбец Как 'A1', затем это пишет в ячейку/столбец A1. Как я могу увеличить ячейку/столбец и/или ссылку строки на основе строк и соответствующих значений столбцов от набора результатов?

Ведите.

47
задан Asif 6 April 2010 в 13:05
поделиться

2 ответа

Я полагаю, вы уже подключились к своей базе данных.

$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++;
}
114
ответ дан 26 November 2019 в 19:23
поделиться

У меня нет большого опыта работы с 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);
    }
6
ответ дан 26 November 2019 в 19:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: