在Excel

时间:2017-06-19 12:26:42

标签: php html css excel http-headers

您好我编写用于下载excel的PHP标题。

如果我有1个表,我可以通过使用width属性

成功设置<td>的宽度

但如果我有两张桌子,那就不行了。我该怎么办?因为我的excel页面文件中需要多个表格

<?php
header("Content-Type: application/vnd.ms-excel; charset=TIS-620");
header('Content-Disposition: attachment; filename="report_schedule_teacher.xls"');#ชื่อไฟล์

?>

<html>
<head>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=TIS-620" />


</head>
<body>

    <table width="100%" style="border-collapse: collapse;overflow:wrap; font-size:9pt;">
        <thead>
        <tr>
            <td width="300">Hello1</td>
            <td width="400">Hello2</td>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>World1</td>
            <td>World2</td>
        </tr>
        </tbody>
    </table>

    <table width="100%" style="border-collapse: collapse;overflow:wrap; font-size:9pt;">  
        <thead>
        <tr>
            <td width="300">Why I cannot set width if I have multiple table</td>
            <td width="400">Noooo</td>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>kub</td>
            <td>pom</td>
        </tr>
        </tbody>
    </table>


</body>
</html>

1 个答案:

答案 0 :(得分:1)

Excel,在阅读HTML文件时,实际上只有一个HTML表。如果你看一下Excel窗口,你会发现它实际上只是一张桌子。如果您坚持分离数据(这对Excel没有影响),您可以使用多个表体:

<html>
<head>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=TIS-620" />


</head>
<body>

    <table width="100%" style="border-collapse: collapse;overflow:wrap; font-size:9pt;">
        <thead>
        <tr>
            <td width="300">Hello1</td>
            <td width="400">Hello2</td>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>World1</td>
            <td>World2</td>
        </tr>
        </tbody>

        <thead>
        <tr>
            <td width="300">Why I cannot set width if I have multiple table</td>
            <td width="400">Noooo</td>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>kub</td>
            <td>pom</td>
        </tr>
        </tbody>
    </table>


</body>
</html>

输出:

screenshot of Excel

顺便说一句,你在这里非常滥用MIME类型!此文档不是application/vnd.ms-excelapplication/xhtml+xml,而是text/html,不应使用XLS扩展名保存。 Excel可以读取HTML文件,但这并不能使HTML文件成为Excel文件!