PHP:将HTML表导出到Excel包括整个表单?

时间:2011-05-25 10:02:52

标签: php html excel

我有一个显示html表单的php文件,在提交时,从mysql数据创建一个html表,并将其导出到excel。

我的问题是整个html表单与表数据一起输出到excel文件。

我的代码是:

<html form..>

<?php
if(isset($_POST['submit'])){
//get sql data and create html table in variable (ie $data="<table>..")

header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$file");
echo "$data";}
?>

我只想在我的.xls中显示“$ data”,而是显示整个<form>,提交按钮等等。

谢谢。

3 个答案:

答案 0 :(得分:1)

在标题调用之前,不应将任何输出发送到浏览器。

在提交过程下方定义您的html表单。

<?php
if(isset($_POST['submit'])){
//get sql data and create html table in variable (ie $data="<table>..")

header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$file");
echo "$data";
}
?>

<html form..>

答案 1 :(得分:0)

将包含写入输出缓冲区的所有数据。 标题调用最好在任何输出之前完成。但是对于文件的组织方式,您可以这样做:

<html form..>

    <?php if(isset($_POST['submit'])){ 
     //get sql data and create html table in variable (ie $data="<table>..")
     // Clean the output buffer so it won't mess up your excel export 
     ob_clean();

    header("Content-type: application/vnd.ms-excel"); 
    header("Content-Disposition: attachment; filename=$file"); 
    echo $data; // no need for quotes here since you only echo your variable
    }
    ?>

答案 2 :(得分:0)

如果你在表示层(你的html文件中的条件ifs)中执行逻辑,那么将表单代码包装成

就足够了
if(!isset($_POST['submit'])){

您最好的方法是将导出操作重定向到其他脚本:)