我正在使用行ID来获取单行的单元格。但是,响应返回列ID,但不返回列标题。为了使代码对其他人可读,还需要获取列标题。我当时正在考虑通过使用在getRow函数中获得的列ID来执行此操作,但我不确定如何捕获它。以下是基本的getRow函数以供参考。感谢您的协助。预先谢谢大家。
smartsheet.sheets.getRow(options)
.then(function(row) {
console.log(row);
})
.catch(function(error) {
console.log(error);
});
答案 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)
根据您的回答将其作为单独的答案发布(并简化格式设置)。
我有一些具体的建议可以为您提供帮助。
然后,我想使用该columnID调用getColumns(columnId)以获取标题。
这是您不需要做的“工作”。单个GET /sheets/{sheetId}
将在一个呼叫中包含您需要的所有数据。只需解析JSON响应即可。
调用getRow()后,我不知道如何捕获columnId。
响应是带有嵌套数组和对象的单个对象。学习以一种对您有意义的方式导航JSON将非常方便。
我建议保存GET工作表调用的响应,因为它是自己的JSON文件。从那里,您可以将其带入脚本并使用逻辑来引用所需的值。