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

如何通过Google Apps Script提取.htm文件数据并导入谷歌表格/Excel

谷歌云盘HTM报表数据提取写入谷歌表格方案

核心逻辑

SAP导出的HTM格式报表默认使用标准<table>标签存储结构化数据,直接通过Google Apps Script解析HTML内的表格节点,转换为二维数组后即可批量写入谷歌表格。

可直接复用代码

function parseSapHtmToSheets() {
  // 按需修改以下3个参数即可
  const HTM_FILE_ID = "替换为云盘内HTM文件的ID";
  const TARGET_SHEET_ID = "替换为目标谷歌表格的ID";
  const TARGET_SHEET_NAME = "替换为要写入的工作表名称,例如Sheet1";

  // 1. 读取云盘HTM文件内容
  const htmFile = DriveApp.getFileById(HTM_FILE_ID);
  // 若出现中文乱码,可替换为 htmFile.getBlob().getDataAsString("GBK") 或 "GB2312"
  const htmContent = htmFile.getBlob().getDataAsString();

  // 2. 解析HTML内的表格数据
  const htmlDocument = XmlService.parse(htmContent);
  const allElements = htmlDocument.getRootElement().getDescendants();
  // 筛选所有table节点,若HTM内有多个表格,修改[0]的索引值选择对应报表表格
  const reportTable = allElements.filter(item => 
    item.getType() === XmlService.ContentTypes.ELEMENT && item.asElement().getName() === "table"
  )[0].asElement();
  const tableRows = reportTable.getChildren("tr");

  // 转换为表格可识别的二维数组
  const outputData = [];
  tableRows.forEach(row => {
    const cellValues = row.getChildren("td").map(cell => cell.getText());
    outputData.push(cellValues);
  });

  // 3. 批量写入谷歌表格
  const targetSheet = SpreadsheetApp.openById(TARGET_SHEET_ID).getSheetByName(TARGET_SHEET_NAME);
  // 清空原有内容,不需要可删除该行
  targetSheet.clearContents();
  targetSheet.getRange(1, 1, outputData.length, outputData[0].length).setValues(outputData);
}

使用说明

  • 首次运行脚本时按系统提示完成云盘、表格权限授权即可
  • 可直接将该逻辑和你已有的Gmail附件转存云盘脚本拼接,实现从接收邮件到数据入表的全流程自动化
  • 如果SAP导出的HTM存在不规范标签导致解析报错,可替换为宽松HTML解析逻辑适配异常格式
  • 导出到Excel的需求可直接在谷歌表格中选择「文件>下载>Microsoft Excel」即可,也可在脚本中追加导出Excel到云盘的逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 01:09:03