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

Office Scripts技术问题:如何将.xlsb文件转换为.xlsx格式

Office Scripts 实现XLSB转XLSX的解决方案

你遇到的Property 'SaveAs' does not exist in workbook错误,核心原因是Office Scripts的API逻辑和VBA完全不同——你写的是VBA的SaveAs语法,但ExcelScript.Workbook对象根本没有这个方法。Office Scripts基于TypeScript,运行在Excel Online环境中,无法直接通过脚本本身完成跨格式的文件另存操作,必须结合Power Automate实现。


步骤1:修正你的Office Script

先确保脚本完成工作表的编辑任务(取消保护、移除筛选、删除行),注意使用传入的password参数而非硬编码值:

function main(workbook: ExcelScript.Workbook, password: string) {
  const selectedSheet = workbook.getWorksheet("Draft");

  // 用传入的密码取消工作表保护
  selectedSheet.getProtection().unprotect(password);

  // 移除自动筛选(先判断是否存在,避免无筛选时报错)
  const autoFilter = selectedSheet.getAutoFilter();
  if (autoFilter) {
    autoFilter.remove();
  }

  // 删除第1-6行
  selectedSheet.getRange("1:6").delete(ExcelScript.DeleteShiftDirection.up);
}

步骤2:用Power Automate完成格式转换

Office Scripts无法直接创建新文件并保存为XLSX,需要通过Power Automate的动作实现格式转换:

  • 新建Power Automate流,选择触发方式(比如「手动触发流」)。
  • 添加「Excel Online (Business) > 运行脚本」动作:选择目标XLSB文件,选中你修改后的脚本,传入对应的password参数。
  • 添加「Excel Online (Business) > 将工作簿另存为」动作:
    • 源工作簿选择你要转换的XLSB文件;
    • 保存类型选择「Excel工作簿(.xlsx)」;
    • 文件名填写替换后的名称(比如把原文件名的.xlsb改成.xlsx);
    • 选择保存的目标位置(比如同一个文件夹)。

流运行后,会先完成工作表的编辑操作,再自动将XLSB文件转换为XLSX格式保存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:07:54