0
Я пытаюсь получить данные из таблицы mysql и выводить в один файл excel. Данные должны появляться бок о бок.Экспорт данных mysql из двух таблиц в excel с использованием php и phpexcel
Но выходной файл excel содержит только специальные символы вместо данных mysql. Пожалуйста, направьте меня в правильном направлении.
Вот мой код:
<?php
// connection with the database
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "redhat";
$dbname = "was";
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);
// require the PHPExcel file
require 'phpexcel/Classes/PHPExcel.php';
//$q2 = "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = ".$dbname."";
$sql = "SHOW TABLES"; $res = mysql_query($sql); $num_tables = mysql_num_rows($res);
$table = $num_tables;
$i = 1;
echo $i;
echo $table;
// write all table names with a variable value like table1 table2 table3
// simple query
while($i <= $table){
//$query = "SELECT servicedate,recdate,dostoreclag,casesrec,scandate,casesentered,casespending,casecountdiff,entrydate,rcvdtolag FROM hos1report ORDER by id DESC";
$query = "SELECT servicedate,recdate,dostoreclag,casesrec,scandate,casesentered,casespending,casecountdiff,entrydate,rcvdtolag FROM hos".$i."report";
$headings = array('Service Date','Rec. Date','DOS to Rec. Lag','Cases Rec.','scan Date','Cases Entered','Cases Pending','Cases Count Diff','Entry Date','Rec. to Entry Lag');
if ($result = mysql_query($query) or die(mysql_error())) {
// Create a new PHPExcel object
$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->setTitle('Report');
$rowNumber = 8;
if ($i == 1) {
$col = 'A';
} elseif ($i == 2) {
$col = 'L';
}
// $col = 'A';
foreach($headings as $heading) {
$objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$heading);
$col++;
}
// Loop through the result set
$rowNumber = 9;
while ($row = mysql_fetch_row($result)) {
if ($i == 1) {
$col = 'A';
} elseif ($i == 2) {
$col = 'L';
}
// $col = 'A';
// $col = 'A';
foreach($row as $cell) {
$objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$cell);
$col++;
}
$rowNumber++;
}
// Freeze pane so that the heading line won't scroll
$objPHPExcel->getActiveSheet()->freezePane('A2');
// Save as an Excel BIFF (xls) file
$i++;
}
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="report.xls"');
header('Cache-Control: max-age=0');
}
$objWriter->save('php://output');
exit();
echo 'a problem has occurred... no data retrieved from the database';
?>
PHP Фатальной ошибка: неперехваченное исключение 'PHPExcel_Writer_Exception' с сообщением 'Не удалось закрыть zip-файл some_excel_file.xlsx.' в /var/www/html/phpexcel/Classes/PHPExcel/Writer/Excel2007.php:399\nStack trace: \ n # 0 /var/www/html/pj.php(75): PHPExcel_Writer_Excel2007-> save ('some_excel_file ... ') \ n # 1 {main} \ n выбрасывается в /var/www/html/phpexcel/Classes/PHPExcel/Writer/Excel2007.php в строке 399 – PeeJay
Мне что-то не хватает, поставьте этот '$ objWriter = new PHPExcel_Writer_Excel2007 ($ objPHPExcel); $ objWriter-> save ('some_excel_file.xlsx'); 'out your while loop. –
} // Создайте экземпляр Writer для создания файла .xlsx OfficeOpenXML Excel. $ objWriter = new PHPExcel_Writer_Excel2007 ($ objPHPExcel); // Запись файла Excel в имя файла some_excel_file.xlsx в текущем каталоге $ objWriter-> save ('some_excel_file.xlsx'); // $ objWriter-> save ('php: // output'); exit(); echo 'возникла проблема ... нет данных, полученных из базы данных'; ?> Это не работает ни – PeeJay