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

如何用Excel Script将对象数组数据输出到Excel单元格A1-C3?

问题描述

尝试使用Excel Script脚本将指定值录入Excel的A1至C3单元格,所用脚本如下:

function main(workbook: ExcelScript.Workbook, jsonData?: fluxos[]) {
  if (jsonData == undefined || jsonData == null) {       
    console.log("jsonData empty. Using dummy data.");     
    jsonData = dummyData;                                 
  };

  let ws = workbook.getActiveWorksheet();

  ws.getRange("A1").setValues(jsonData);
   
  
};

/*----------------------- Object Interface ---------------------------*/
interface fluxos {
  Fluxo1: string,
  Fluxo2: string,
  Fluxo3: string
}
/*----------------------- Dummy Data ---------------------------*/
const dummyData: fluxos[] = [
  {
    Fluxo1: "Atividades operacionais",
    Fluxo2: "Recebimentos de clientes",
    Fluxo3: "Cliente A"
  },
  {
    Fluxo1: "Atividades operacionais",
    Fluxo2: "Recebimentos de clientes",
    Fluxo3: "Cliente B"
  },
  {
    Fluxo1: "Atividades operacionais",
    Fluxo2: "Pagamentos a fornecedores",
    Fluxo3: "Fornecedor A"
  }
];

问题出在代码行:

ws.getRange("A1").setValues(jsonData);

需要解决如何将jsonData对象数组的值输出到单元格中。

解决方案

setValues方法要求传入二维数组(string[][]/number[][]),而非对象数组。需先将对象数组转换为符合要求的二维数组,再写入单元格。修改后的代码如下:

function main(workbook: ExcelScript.Workbook, jsonData?: fluxos[]) {
  if (jsonData == undefined || jsonData == null) {       
    console.log("jsonData empty. Using dummy data.");     
    jsonData = dummyData;                                 
  };

  let ws = workbook.getActiveWorksheet();

  // 将对象数组转换为二维数组
  const valuesArray = jsonData.map(item => [item.Fluxo1, item.Fluxo2, item.Fluxo3]);
  
  // 定位目标范围并设置值
  ws.getRange("A1:C3").setValues(valuesArray);
};

/*----------------------- Object Interface ---------------------------*/
interface fluxos {
  Fluxo1: string,
  Fluxo2: string,
  Fluxo3: string
}
/*----------------------- Dummy Data ---------------------------*/
const dummyData: fluxos[] = [
  {
    Fluxo1: "Atividades operacionais",
    Fluxo2: "Recebimentos de clientes",
    Fluxo3: "Cliente A"
  },
  {
    Fluxo1: "Atividades operacionais",
    Fluxo2: "Recebimentos de clientes",
    Fluxo3: "Cliente B"
  },
  {
    Fluxo1: "Atividades operacionais",
    Fluxo2: "Pagamentos a fornecedores",
    Fluxo3: "Fornecedor A"
  }
];
关键修改说明
  • 转换数据结构:用map遍历对象数组,提取每个对象的Fluxo1、Fluxo2、Fluxo3值组成子数组,最终得到[["值1","值2","值3"], ["值4","值5","值6"], ...]的二维数组格式。
  • 指定准确范围:直接使用A1:C3定位目标区域,确保范围大小和二维数组的行列数(3行3列)匹配,避免仅写A1导致数据无法正确填充。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 14:25:24