HTML到具有多个工作表的Excel

时间:2018-06-28 14:27:03

标签: php html xml excel worksheet

我正在通过以下方式将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>应该进入哪个工作表吗?

注释

我四处寻找,发现了thisthis

第一个链接上的解决方案使用XML而不是HTML,我可以接受,但是我无法使多行正确显示,因为我无法将行设置为根据内容。它只显示第一行。

第二个链接谈论MHTML(多部分HTML),但我听不懂。

1 个答案:

答案 0 :(得分:-1)

我在这里发布了相同请求的答案。创建2张纸(每张表1张纸)并正确工作: How to convert html table to excel with multiple sheet?