Экспорт базы данных MySQL в Excel - PullRequest
1 голос
/ 15 марта 2012

Я пытался экспортировать содержимое базы данных mysql в Excel, используя приведенный ниже скрипт, но безрезультатно.Должно быть, я что-то неправильно делаю:

$getExcel = "SELECT name, age, course, city FROM person";
$res = mysql_query($getExcel);


/** Error reporting */
error_reporting(E_ALL);

date_default_timezone_set('Europe/London');

/** PHPExcel */
require_once 'Classes/PHPExcel.php';


// Create new PHPExcel object
echo date('H:i:s') . " Create new PHPExcel object\n";
$objPHPExcel = new PHPExcel();

if(!$res){
    die("Error");
}
$col = 0; 
$row = 0; 
while($row = mysql_fetch_assoc($res)) { 
    foreach($row as $key=>$value) { 
        $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value); 
        $col++; 
    } 
    $row++; 
} 

// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);

// Save Excel 2007 file
echo date('H:i:s') . " Write to Excel2007 format\n";
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('record.xlsx');

Что я делаю не так, пожалуйста?

1 Ответ

4 голосов
/ 15 марта 2012

Вероятно, ваша проблема в том, что вы используете переменную $row в двух разных контекстах ... попробуйте это:

$row = 1; 
while($mrow = mysql_fetch_assoc($res)) { 
    $col = 0; 
    foreach($mrow as $key=>$value) { 
        $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value); 
        $col++; 
    } 
    $row++; 
}
...