WPS AirScript脚本合集(五):输入表名获取表ID、行记录ID及行记录所有字段的值

一、脚本逻辑

  • 输入:表名

  • 输出:表ID、行记录ID、行记录所有字段的值

二、程序代码

/**
 * 根据表名获取表ID、行记录ID及行记录所有字段的值(AirScript实现)
 * 需在WPS脚本编辑器中运行
 * 参考官方文档:https://airsheet.wps.cn/docs/api/dbsheet/Field.html
 */

function getTableFieldInfo(tableName) {
    // 获取所有表信息
    const sheets = Application.Sheet.GetSheets();
    //console.log(`所有数据表信息:`,sheets);
    
    // 查找目标表
    let tableId = null;
    for (const sheet of sheets) {
        if (sheet.name === tableName) {
            tableId = sheet.id;
            break;
        }
    }
    
    // 表不存在处理
    if (!tableId) {
        throw new Error(`找不到表名为【${tableName}】的数据表`);
    }

    // 获取所有记录
    let offset = null;
    let allRecords = [];
    do {
        const response = Application.Record.GetRecords({
            SheetId: tableId,
            PageSize: 1000, // 推荐设置最大分页值
            Offset: offset
        });
        
        // 处理API响应错误
        if (!response || !response.records) {
            throw new Error("获取记录失败,请检查网络连接或API权限");
        }
        
        allRecords = allRecords.concat(response.records);
        offset = response.offset;
    } while (offset);

    return {
        tableId: tableId,
        allRecords: allRecords
    };
}

// 使用示例
try {
    const tableName = "产品信息表";
    const result = getTableFieldInfo(tableName);
    console.log(`表名: ${tableName}`);
    console.log(`表ID: ${result.tableId}`);
    result.allRecords.forEach((record, index) => {
        console.log(`第 ${index + 1} 行记录 ID: ${record.id}`);
        console.log(`第 ${index + 1} 行记录`, "字段值:", record.fields);
    });
} catch (error) {
    console.error("程序运行错误:", error.message);
}

代码解释

  1. 获取所有表信息:通过Application.Sheet.GetSheets()获取所有数据表的信息。

  1. 表名匹配逻辑:遍历所有数据表,通过name属性匹配目标表名,获取对应的表ID

  1. 异常处理机制:当未找到匹配表时抛出明确错误信息,避免后续操作因无效ID导致API调用失败。

  1. 分页获取记录逻辑:使用Application.Record.GetRecords方法,通过循环不断获取记录,直到没有更多记录为止。

  1. API响应验证:确保接口返回有效数据结构,避免因网络异常或权限问题导致后续操作出错。

  1. 结果返回结构:返回包含表ID全量记录数组的对象。每条记录包含:

  • id:行记录唯一标识

  • fields:包含所有字段键值对的对象

  1. 使用示例:给出了一个示例,使用“产品信息表”进行测试,并将结果打印到控制台。

三、脚本运行输出示例

广东省
浏览 171
1
3
分享
3 +1
1
1 +1
全部评论 1
 
WPS 冲浪队长

社区管理员

前排点赞
· 广东省
回复