首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用PHP问题将html表导出到可下载的excel

使用PHP问题将html表导出到可下载的excel
EN

Stack Overflow用户
提问于 2011-06-29 16:37:21
回答 2查看 3.1K关注 0票数 0

所以,我在导出表格到excel时遇到了一些问题。

它是生成的,但只显示第一组标头。

我有一张这样的桌子:

代码语言:javascript
复制
<table>         
        <thead>
            <tr>
                <th colspan="5">Incoming</th>
            </tr>
            <tr>
                <th>From</th>
                <th>To</th>
                <th>Date</th>
                <th>Duration</th>
                <th>Status</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td style="text-align: center;">942367233</td>
                <td style="text-align: center;">-</td>
                <td style="text-align: center;">15-06-2011 08:24</td>
                <td style="text-align: center;">00:00</td>
                <td style="text-align: center;">Abandoned</td>
            </tr>
            <tr>
                <td style="text-align: center;">935761500</td>
                <td style="text-align: center;">1956</td>
                <td style="text-align: center;">15-06-2011 09:20</td>
                <td style="text-align: center;">00:00</td>
                <td style="text-align: center;">Answered</td>
            </tr>
            <tr>
                <td style="text-align: center;">942367233</td>
                <td style="text-align: center;">1957</td>
                <td style="text-align: center;">15-06-2011 09:21</td>
                <td style="text-align: center;">02:16</td>
                <td style="text-align: center;">Answered</td>
            </tr>
        </tbody>
</table>

一张表格放在桌子上

代码语言:javascript
复制
<form action="toexcel.php" method="post" target="_blank"
        onsubmit=\'$("#datatodisplay").val($("#data").html())\'>
        <input  type="image" src="/images/icons/Floppy-48x48.png" width="12" height="12">
        <input type="hidden" id="datatodisplay" name="datatodisplay" />
        </form>

然后,在PHP中,它应该生成excel:

代码语言:javascript
复制
header("Content-type: application/vnd.ms-excel; name='excel'");
header("Content-Disposition: filename=ficheroExcel.xls");  
header("Pragma: no-cache");  
header("Expires: 0");
echo $_POST['datatodisplay'];

但是只显示第一组报头。我已经尝试删除头文件,但也不起作用。

怎么了?

EN

Stack Overflow用户

发布于 2011-06-29 17:09:07

您的HTML是错误的。HTML DTD声明一个表只能包含一个thead和一个tfoot,但包含多个tbody标记:

代码语言:javascript
复制
<!ELEMENT table
 (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>

这是您的主要问题;HTML是无效的。

除此之外:

  • 您正在告诉浏览器(和excel)该HTML文件是一个.XLS文件,这显然是错误的。尝试使用带有W3C HTML验证器的.html.
  • Validate表HTML页面,并确保它验证了
  • 如果您不关心布局,请使用CSV文件而不是HTML文件
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6517814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档