я использую PHPExcel экспортировать результаты запроса базы данных в Excel, например:
SELECT * FROM members WHERE BranchID=12345
И хотя я могу экспортировать содержимое строки, я также (конечно) хочу иметь имена столбцов.
Следующий код работает для экспорта данных:
<?php
session_start();
require_once'PHPExcel.php';
$branchID=$_SESSION['ITEM'];
$SQL = "SELECT * FROM members WHERE BranchID='$branchID' ORDER BY Type";
// Execute the database query
$result =sqlsrv_query($dbhandle, $SQL, array(), array( "Scrollable" => 'static'));
// Instantiate a new PHPExcel object
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setCreator("Donor tracking System")
->setLastModifiedBy("DTS")
->setTitle("All members")
->setSubject("Office 2007 XLSX Test Document")
->setDescription("All Members, generated using PHP classes.")
->setKeywords("office 2007 openxml php")
->setCategory("Test result file");
// Set the active Excel worksheet to sheet 0
$objPHPExcel->setActiveSheetIndex(0);
// Initialise the Excel row number
$rowCount = 1;
while($row = sqlsrv_fetch_array($result)){
$objPHPExcel->getActiveSheet()->SetCellValue('A'.$rowCount, $row['Name']);
$objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowCount,date_format( $row['dateOfreg'],"d-m-Y"));
// Increment the Excel row counter
$rowCount++;
}
$objPHPExcel->getActiveSheet()->setTitle('All Members');
// Redirect output to a client’s web browser (Excel2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="allmembers.xls"');
header('Cache-Control: max-age=0');
// Instantiate a Writer to create an OfficeOpenXML Excel .xlsx file
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
// Write the Excel file to filename some_excel_file.xlsx in the current directory
$objWriter->save('php://output');
exit;
?>
Как добавить заголовки к столбцам в файле Excel?
Разве не имеет смысла просто иметь массив с каждым заголовком столбца, а затем записать его в файл прямо перед тем, как вы начнете записывать строки, извлекаемые из SQL-сервера?
Запишите заголовки, увеличьте переменную-счетчик и запишите оставшиеся строки.
Других решений пока нет …