You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需插件将含rowspan和colspan的HTML表格导出为XLSX/XLS

无插件实现HTML表格转带样式的XLSX/XLS

方法1:浏览器原生导出(快速保留基础样式)

  • 直接在页面中添加JS逻辑,构造包含样式的Excel格式数据URL,浏览器会自动解析为XLS文件:
    function exportStyledTable() {
      const table = document.getElementById('target-table');
      // 嵌入表头和子表头的样式定义
      const styledHtml = `<html><head><style>
        th.main-header { background: #2196F3; color: #fff; font-weight: bold; }
        th.sub-header { background: #64B5F6; color: #fff; font-weight: bold; }
      </style></head><body>${table.outerHTML}</body></html>`;
      const blob = new Blob([styledHtml], { type: 'application/vnd.ms-excel' });
      const downloadLink = document.createElement('a');
      downloadLink.href = URL.createObjectURL(blob);
      downloadLink.download = 'styled-table.xls';
      downloadLink.click();
      URL.revokeObjectURL(downloadLink.href);
    }
    
    这个方案完全依赖浏览器的Excel解析能力,能保留表头、子表头的背景色和文字样式,无需任何外部工具。

方法2:手动构造SpreadsheetML格式(精准控制样式)

如果需要更精细的样式定制,可以直接生成微软公开的SpreadsheetML格式(XML结构的XLS),不需要第三方库:

  1. 先定义样式模块,给主表头、子表头分配独立样式ID
  2. 把HTML表格的内容映射到XML的单元格中,对应指定样式ID
    核心示例代码:
<?xml version="1.0" encoding="UTF-8"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet">
  <Styles>
    <Style ss:ID="MainHeader">
      <Interior ss:Color="#2196F3" ss:Pattern="Solid"/>
      <Font ss:Color="#FFFFFF" ss:Bold="1"/>
    </Style>
    <Style ss:ID="SubHeader">
      <Interior ss:Color="#64B5F6" ss:Pattern="Solid"/>
      <Font ss:Color="#FFFFFF" ss:Bold="1"/>
    </Style>
  </Styles>
  <Worksheet ss:Name="Sheet1">
    <Table>
      <Row>
        <Cell ss:StyleID="MainHeader"><Data ss:Type="String">主表头A</Data></Cell>
        <Cell ss:StyleID="MainHeader"><Data ss:Type="String">主表头B</Data></Cell>
      </Row>
      <Row>
        <Cell ss:StyleID="SubHeader"><Data ss:Type="String">子表头A1</Data></Cell>
        <Cell ss:StyleID="SubHeader"><Data ss:Type="String">子表头B1</Data></Cell>
      </Row>
      <!-- 数据行内容 -->
    </Table>
  </Worksheet>
</Workbook>

你可以用JS动态拼接这个XML内容,再通过Blob下载为.xls文件,这种方式能完全自定义样式细节。

为什么CSV无法满足需求?

CSV是纯文本数据格式,仅能存储单元格内容,不支持任何样式、层级表头或格式定义,所以确实无法实现你的需求。

内容的提问来源于stack exchange,提问作者Rana Mamdouh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 08:36:40