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

How to get column title for each row entry

我正在使用行 ID 获取单行的单元格。但是,响应 returns 列 ID 而不是列标题。为了使代码对其他人可读,获得列标题会很有帮助。我正在考虑通过使用在 getRow 函数中获得的列 id 来执行此操作,但我不完全确定如何捕获它。下面是基本的 getRow 函数供参考。我感谢任何帮助。提前谢谢大家。

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

我首选的解决方法是在我的第一个 GET /sheets/{sheetId} 请求中动态创建一个列映射。
假设我们有一个包含三列的 sheet: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. 尝试合并您的 API 通话。

    I then want to use that columnID to call getColumns(columnId) to obtain the title.

这是您不需要做的 'work'。一个 GET /sheets/{sheetId} 将包含您一次调用所需的所有数据。这只是解析 JSON 响应的问题。

  1. 以此为契机,提高您与 JSON 合作的能力。

    I do not know how to catch the columnId once getRow() is called.

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

我建议将 GET sheet 调用的响应保存为自己的 JSON 文件。从那里,您可以将它带入您的脚本并使用您的逻辑来引用您想要的值。