0

这个问题与使用 TypeScript 的 Office Script 有关,我不知道这是我不存在的编码技能还是 Office Skript System 的问题。

如果我添加一个 9,基本上将 8 个变量推入一个数组是可行的。数组会被它覆盖。

有人知道我做错了什么吗?

提前致谢!

function main(Workbook: ExcelScript.Workbook): InterviewInvite[] {
let selectedSheet = Workbook.getWorksheet("Tabelle1");
// Convert the table rows into InterviewInvite objects for the flow.
let invites: InterviewInvite[] = [];
  invites.push({
A: selectedSheet.getRange("A1").getValue().toString(),
B: selectedSheet.getRange("A2").getValue().toString(),
C: selectedSheet.getRange("A3").getValue().toString(),
D: selectedSheet.getRange("A4").getValue().toString(),
E: selectedSheet.getRange("A5").getValue().toString(),
F: selectedSheet.getRange("A6").getValue().toString(),
G: selectedSheet.getRange("A7").getValue().toString(),
H: selectedSheet.getRange("A8").getValue().toString(),
I: selectedSheet.getRange("A9").getValue().toString(),
  });
  console.log(JSON.stringify(invites));
return invites;
}
// The interview invite information.
interface InterviewInvite {
A: string
B: string
C: string
D: string
E: string
F: string
G: string
H: string
I: string
}
挪威克朗

好的

4

2 回答 2

0

将原始代码更新为此对我有用:

function main(Workbook: ExcelScript.Workbook): InterviewInvite[] {
  let selectedSheet = Workbook.getWorksheet("Sheet1");
  // Convert the table rows into InterviewInvite objects for the flow.
  let invites: InterviewInvite[] = [];
  let values = selectedSheet.getRange("A1:A9").getValues();
  invites.push({
      A: values[0][0].toString(),
      B: values[1][0].toString(),
      C: values[2][0].toString(),
      D: values[3][0].toString(),
      E: values[4][0].toString(),
      F: values[5][0].toString(),
      G: values[6][0].toString(),
      H: values[7][0].toString(),
      I: values[8][0].toString(),
  });
  console.log(JSON.stringify(invites));
  return invites;
}


// The interview invite information.
interface InterviewInvite {
  A: string
  B: string
  C: string
  D: string
  E: string
  F: string
  G: string
  H: string
  I: string
}

主要区别在于这一行,它一次性将范围内的所有值读取A1:A9到二维数组中:

  let values = selectedSheet.getRange("A1:A9").getValues();

此外,我相信这会比getRange(...).getValue()为每个单独的单元格多次调用更有效。

我还不确定为什么原始代码不起作用。那可能是一个错误。

于 2021-07-09T19:28:59.487 回答
0
function main(Workbook: ExcelScript.Workbook): InterviewInvite[] {
let selectedSheet = Workbook.getWorksheet("Tabelle1");
// Convert the table rows into InterviewInvite objects for the flow.
let invites: InterviewInvite[] = [];
  invites.push({
A: selectedSheet.getRange("A1").getValue().toString(),
B: selectedSheet.getRange("A2").getValue().toString(),
C: selectedSheet.getRange("A3").getValue().toString(),
D: selectedSheet.getRange("A4").getValue().toString(),
E: selectedSheet.getRange("A5").getValue().toString(),
F: selectedSheet.getRange("A6").getValue().toString(),
G: selectedSheet.getRange("A7").getValue().toString(),
H: selectedSheet.getRange("A8").getValue().toString(),
I: selectedSheet.getRange("A9").getValue().toString(),
  });
  console.log(JSON.stringify(invites));
return invites;
}

函数main只将一个元素推入invites数组。

考虑下一个例子:

const invites = []

invites.push({
  A: 1,
  B: 1,
  C: 1,
  D: 1,
  E: 1,
  F: 1,
  G: 1,
  H: 1,
  I: 1,
});

invites // [{A: 1, B: 1, C: 1, D: 1, E: 1, …}]

invites.length // 1

如果要推送另一个元素,只需push再次调用:

invites.push(2)

基本上将 8 个变量推入数组是可行的,您没有将 8 个元素推入数组

于 2021-07-09T08:31:57.307 回答