Я новичок в библиотеке PHPExcel, и это мой первый опыт. Я пытаюсь экспортировать данные MySQL в Ms Excel, предварительно отформатировав их. Я реализовал процедуру, которая просто форматирует заголовки таблицы жирным шрифтом и сохраняет их со всеми соответствующими данными в электронной таблице. Однако, когда я запускаю процедуру, она отображает следующую ошибку:
Fatal error: Call to undefined function getRow() in C:\Xampp\htdocs\test.php on line 182
Вот код PHP:
require_once 'PHPExcel.php';
require_once 'PHPExcel/IOFactory.php';
require_once 'PHPExcel/Writer/Excel2007.php';
// create mysql query
$query_export = "SELECT * FROM `table1` ORDER BY `date` ASC";
// execute query
$result = mysqli_query($GLOBALS['mysqli'], $query_export) or die ("<b>Couldn't execute SQL query:</b> " . mysqli_error($GLOBALS['mysqli']));
try {
$sheet = new PHPExcel();
// set metadata
$sheet->getProperties()->setCreator('www.example.com')
->setLastModifiedBy('www.example.com')
->setTitle('Report on Table')
->setKeywords('report tables etc.');
// set default settings
$sheet->getDefaultStyle()->getAlignment()->setVertical(
PHPExcel_Style_Alignment::VERTICAL_TOP);
$sheet->getDefaultStyle()->getAlignment()->setHorizontal(
PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$sheet->getDefaultStyle()->getFont()->setName('Calibri');
$sheet->getDefaultStyle()->getFont()->setSize(12);
// get reference to active spreadsheet in workbook
$sheet->setActiveSheetIndex(0);
$activeSheet = $sheet->getActiveSheet();
// populate with data
$row = getRow($result); // line 182
$colHeaders = array_keys($row);
$col = 'A';
$rownum = 1;
// set column headings
foreach ($colHeaders as $header) {
$activeSheet->setCellValue($col . $rownum, $header);
$activeSheet->getStyle($col . $rownum)->getFont()->setBold(true);
$activeSheet->getColumnDimension($col)->setAutoSize(true);
$col++;
}
// populate individual cells with data
do {
$col = 'A';
$rownum++;
foreach ($row as $value) {
$activeSheet->setCellValue($col++ . $rownum, $value);
}
} while ($row = getRow($result));
// setting headers
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename=Export.xlsx');
header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');
$writer = PHPExcel_IOFactory::createWriter($sheet, 'Excel2007');
$writer->save('php://output');
exit();
} catch (Exception $e) {
$error = $e->getMessage();
}
// display error
if (isset($error)) {
echo "<p>" .$error. "</p>";
}
// free resultset
mysqli_free_result($result);
// close db connection
$GLOBALS['mysqli']->close();
exit();
Любая помощь приветствуется.
ОБНОВЛЕНИЕ
Для создания вышеупомянутого кода используется следующий учебник: http://www.youtube.com/watch?v=L6MQQvBi-ks#t=65
PHPExcel
и методомgetRow()
. 29.07.2014PHPExcel
иgetRow()
. С точки зрения SQL-запроса все в порядке, я проверял их несколько раз. 29.07.2014getRow()
вообще не связан с PHPExcel, если только вы не пытаетесь вызвать метод для ячейки (в этом случае для какой ячейки, потому что на данный момент у вас нет никаких объектов ячейки).... если он не пытается получить данные из базы данных, то что должен делатьgetRow()
? 29.07.2014