首页 > 解决方案 > 如何将正文中的两个表分成xml中的两个不同的工作表?

问题描述

我有以下代码,它获取两个带有 Ids table1&的表的 outerHTML 代码table2。tableData 字符串中的 html 代码用于生成包含 2 个不同工作表的 excel 文件。

但是,该代码不会将两个表分成两个不同的工作表,它只是在 excel 文件中一个接一个地显示两个表。

bom.component.html

<button (click)="exportExcel($event)">
    Export BOM as excel
</button>

bom.component.ts

exportExcel(event: any) {

  let tableData1 = document.getElementById("table1").outerHTML;
  let tableData2 = document.getElementById("table2").outerHTML

  let tableData = `
  <html xmlns:o="urn:schemas-microsoft-com:office:office"
    xmlns:x="urn:schemas-microsoft-com:office:excel"
    xmlns="http://www.w3.org/TR/REC-html40">
    <head>
      <!--[if gte mso 9]>
        <xml>
          <x:ExcelWorkbook>
            <x:ExcelWorksheets>

              <!-- First worksheet -->
              <x:ExcelWorksheet>
                <x:Name>Customer Specs</x:Name>
              </x:ExcelWorksheet>

              <!-- Second worksheet -->
              <x:ExcelWorksheet>
                <x:Name>BOM OUTPUT</x:Name>
              </x:ExcelWorksheet>

            </x:ExcelWorksheets>
          </x:ExcelWorkbook>
        </xml>
      <![endif]-->
    </head>
    <body>
      ${tableData1}
      ${tableData2}
    </body>
  </html>`;
  
  let a = document.createElement("a");
  a.href = `data:application/vnd.ms-excel,${encodeURIComponent(tableData)}`;
  a.download = "CH_Response-Bill Of Material.xls";
  a.click();
}

我不知道我在这里做错了什么,但我真的很感激任何帮助。

提前致谢。

标签: angularexcelxml

解决方案


推荐阅读