使用 PHP 导出到.xls时出错


Errors while exporting to .xls using PHP

我以前问过类似的问题,但我被告知我的问题只是我懒惰,所以让我改写一下。

我一直在使用 PHP 类脚本使我能够将 SQL 数据导出到.xls文件,但生成的 excel 文件不显示任何值,网页本身也没有显示任何错误。

我使用的类文件记录在下面的链接中:

http://web.burza.hr/blog/php-class-for-exporting-data-in-multiple-worksheets-excel-xml/

我将其合并到我的网站中,如下所示

$dbase->loadextraClass('excel.xml');
$excel = new excel_xml();
$header_style = array(
                        'bold'       => 1,
                        'size'       => '14',
                        'color'      => '#000000',
                        'bgcolor'    => '#ffffff'
                    );
$excel->add_style('header',$header_style);

if(isset($_POST['fec_save']))
{
    if($_POST['reporttype']=='films')
    {
        $films = $dbase->runquery("SELECT datetime,title,country_of_origin,language,runningtime,(SELECT name FROM fec_client WHERE filmid = fec_film.filmid) AS client, (SELECT rating_decision FROM fec_rating_report WHERE filmid = fec_film.filmid) AS rating FROM fec_film WHERE datetime >= '".strtotime($_POST['fromdate'])."' AND datetime <= '".strtotime($_POST['todate'])."'",'multiple');
        $filmcount = $dbase->getcount($films);
        //continue with excel buildup
        $columns = array('Date','Title','Origin','Language','Minutes','Client','Rating');
        $excel->add_row($columns,'header');
        for($i=1; $i<=$filmcount; $i++)
        {
            $film = $dbase->fetcharray($films);
            $excel->add_row($film['datetime'],$film['title'],$film['country_of_origin'],$film['language'],$film['runningtime'],$film['client'],$film['rating']);
        }
        $excel->create_worksheet('From_'.str_replace(' ','',$_POST['fromdate']).'_to'.str_replace(' ','',$_POST['todate']));
        $xml = $excel->generate();
        $excel->download('FilmsClassified_from_'.str_replace(' ','',$_POST['fromdate']).'_to'.str_replace(' ','',$_POST['todate']));
    }
}

我想得到一些帮助,以解决我可能做错了什么。

谢谢

长,无法作为评论发布:

$xml = $excel->generate();

将所有 XML 文件内容创建为字符串并将其存储在$xml而

$excel->create_worksheet('From_'.str_replace(' ','',$_POST['fromdate']).'_to'.str_replace(' ','',$_POST['todate']));

创建 XML 并将其定向到输出,并带有适当的下载标头。

因此,您没有正确使用该类,因为这是不必要的重复工作。