我正在通过以下方式将HTML提供给Excel文件:
header('Content-type: application/excel');
header('Content-Disposition: attachment; filename=testfile.xls');
$html = "<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">
<head>
<!--[if gte mso 9]>
<xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name>Sheet1</x:Name>
<x:WorksheetOptions>
<x:Print>
<x:ValidPrinterInfo/>
</x:Print>
</x:WorksheetOptions>
</x:ExcelWorksheet>
</x:ExcelWorksheets>
</x:ExcelWorkbook>
</xml>
<![endif]-->
</head>
<body>
<table>
<thead><tr><th>Header</th></tr></thead>
<tbody><tr><td>Values</td></tr></tbody>
</table>
</body>
</html>";
echo $html;
这将创建一个包含1个工作表的Excel文件,但我需要另一个工作表。所以我要做的就是复制
<x:ExcelWorksheet>
<x:Name>Sheet2</x:Name>
<x:WorksheetOptions>
<x:Print>
<x:ValidPrinterInfo/>
</x:Print>
</x:WorksheetOptions>
</x:ExcelWorksheet>
,只是使用了另一个名称。这按预期工作,但现在我不知道如何将数据放入第二个工作表。我有办法指定<table>
应该进入哪个工作表吗?
第一个链接上的解决方案使用XML而不是HTML,我可以接受,但是我无法使多行正确显示,因为我无法将行设置为根据内容。它只显示第一行。
第二个链接谈论MHTML(多部分HTML),但我听不懂。
答案 0 :(得分:-1)
我在这里发布了相同请求的答案。创建2张纸(每张表1张纸)并正确工作: How to convert html table to excel with multiple sheet?