AirScript脚本合集(一):调用 多维表 API 实现输出表ID+字段ID+该字段每一行的值
一、脚本逻辑
输入:表名、字段名
输出:表ID、字段ID、该字段每一行的值
二、程序代码
// 获取所有表信息
const sheets = Application.Sheet.GetSheets();
// console.log(sheets);
function getTableFieldInfo(tableName, fieldName) {
let tableId = null;
let fieldId = null;
let fieldValues = [];
// 遍历所有表,查找目标表
for (let i = 0; i < sheets.length; i++) {
const sheet = sheets[i];
if (sheet.name === tableName) {
tableId = sheet.id;
// 遍历表的字段,查找目标字段
for (let j = 0; j < sheet.fields.length; j++) {
const field = sheet.fields[j];
if (field.name === fieldName) {
fieldId = field.id;
break;
}
}
break;
}
}
// 如果未找到表或字段,直接返回
if (tableId === null || fieldId === null) {
return {
tableId: tableId,
fieldId: fieldId,
fieldValues: fieldValues
};
}
// 获取表的所有记录
let offset = null;
let allRecords = [];
do {
const records = Application.Record.GetRecords({
SheetId: tableId,
Offset: offset
});
allRecords = allRecords.concat(records.records);
offset = records.offset;
} while (offset);
// console.log(allRecords);
// 提取目标字段每一行的值
for (let k = 0; k < allRecords.length; k++) {
const record = allRecords[k];
const fieldValue = record.fields[fieldName];
fieldValues.push(fieldValue);
}
return {
tableId: tableId,
fieldId: fieldId,
fieldValues: fieldValues
};
}
// 示例输入
const tableName = "工单信息";
const fieldName = "问题编号";
const result = getTableFieldInfo(tableName, fieldName);
console.log(`表名: ${tableName}`);
console.log(`表 ID: ${result.tableId}`);
console.log(`字段名: ${fieldName}`);
console.log(`字段 ID: ${result.fieldId}`);
console.log(`该字段每一行的值:`, result.fieldValues);