如何获取每行条目的列标题

时间:2018-07-27 13:03:13

标签: smartsheet-api

我正在使用行ID来获取单行的单元格。但是,响应返回列ID,但不返回列标题。为了使代码对其他人可读,还需要获取列标题。我当时正在考虑通过使用在getRow函数中获得的列ID来执行此操作,但我不确定如何捕获它。以下是基本的getRow函数以供参考。感谢您的协助。预先谢谢大家。

smartsheet.sheets.getRow(options)
  .then(function(row) {
  console.log(row);
})
.catch(function(error) {
  console.log(error);
});

2 个答案:

答案 0 :(得分:1)

解决此问题的首选方法是在我的第一个GET /sheets/{sheetId}请求中动态创建一个列映射。
假设我们有一个包含三列的工作表:Japan,Cat和Cafe。这是制作柱状图的一种方法。

const columnMap = makeColumnMap(<your sheet data>);

function makeColumnMap(sheetData){
    const colMap = {};
    sheetData.columns.map( column => colMap[column.title] = column.id);
    return colMap;
}

现在,您可以像下面这样引用您的特定列:columnMap["Japan"]columnMap["Cat"]columnMap["Cafe"],也可以根据需要使用点符号。

基本上,我们正在做的是创建一个字典以将列标题映射到相应的列ID。

答案 1 :(得分:0)

根据您的回答将其作为单独的答案发布(并简化格式设置)。

我有一些具体的建议可以为您提供帮助。

  1. 尝试合并您的API调用。
      

    然后,我想使用该columnID调用getColumns(columnId)以获取标题。

这是您不需要做的“工作”。单个GET /sheets/{sheetId}将在一个呼叫中包含您需要的所有数据。只需解析JSON响应即可。

  1. 以此为契机,提高您使用JSON的能力。
      

    调用getRow()后,我不知道如何捕获columnId。

响应是带有嵌套数组和对象的单个对象。学习以一种对您有意义的方式导航JSON将非常方便。

我建议保存GET工作表调用的响应,因为它是自己的JSON文件。从那里,您可以将其带入脚本并使用逻辑来引用所需的值。