使用php和phpexcel将两个表中的mysql数据导出到excel

使用php和phpexcel将两个表中的mysql数据导出到excel,php,mysql,phpexcel,Php,Mysql,Phpexcel,我试图从mysql表中获取数据,并将其输出到单个excel文件中。数据需要同时提供 但是输出的excel文件只包含特殊字符,而不包含mysql数据。请给我指一下正确的方向 这是我的密码: <?php // connection with the database $dbhost = "localhost"; $dbuser = "root"; $dbpass = "redhat"; $dbname = "was"; mysql_c

我试图从mysql表中获取数据,并将其输出到单个excel文件中。数据需要同时提供

但是输出的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
    // 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'); 

    }
        // Instantiate a Writer to create an OfficeOpenXML Excel .xlsx file
        $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); 
        // Write the Excel file to filename some_excel_file.xlsx in the current directory
        $objWriter->save('some_excel_file.xlsx');


    // $objWriter->save('php://output'); 
    exit(); 
    echo 'a problem has occurred... no data retrieved from the database';
?> 

PHP致命错误:在/var/www/html/PHPExcel/Classes/PHPExcel/Writer/Excel2007.PHP:399\n堆栈跟踪:\n#0/var/www/html/pj.PHP(75):PHPExcel#Writer#Excel2007->save('some#excel#file…)\n{1}\n在第399I行插入/var/www/html/phpexcel/Classes/phpexcel/Writer/Excel2007.php。我遗漏了一些东西,请把这个
$objWriter=new phpexcel\u Writer\u Excel2007($objPHPExcel)放进去$objWriter->save('some_excel_file.xlsx')输出while循环。}//实例化一个Writer以创建OfficeOpenXML Excel.xlsx文件$objWriter=new PHPExcel_Writer_Excel2007($objPHPExcel);//将Excel文件写入当前目录$objWriter->save('some_Excel_file.xlsx')中的文件名some_Excel_file.xlsx;//$objWriter->save命令php://output');      退出();echo“出现了一个问题。。。没有从数据库“;?”检索到数据>这也不行