WPS AirScript脚本合集(十二):文本内容批量转换成超链接
一、多维表格数据表及字段结构
1、表名:文本转换超链接
2、视图名:表格视图
3、字段设置:
◉ 字段名称:文本 - 字段类型:文本 - 禁止录入重复值:否 - 默认值:无;
◉ 字段名称:帖子名称 - 字段类型:文本 - 禁止录入重复值:否 - 默认值:无;
◉ 字段名称:超链接 - 字段类型:超链接 - 显示样式:以超链接形式显示;
二、AirScript脚本程序代码
主要思路如下:
1、通过指定表名“文本转换超链接”获取表ID;
2、分页查询获取当前表内所有行记录;
3、生成超链接字段内容并构建更新数据结构;
4、分批更新记录,每次最多100条。
微信公众号文章详见https://mp.weixin.qq.com/s/MqzI1KW0whmzVuoGTZS1dQ
// 1. 获取当前目标表信息
const sheetId = Application.Sheets("文本转换超链接").Id;
console.log("当前表ID:", sheetId);
// 2. 分页查询所有记录(超过1000行)
let allRecords = [];
let offset = null;
do {
const pageResult = Application.Record.GetRecords({
SheetId: sheetId,
PageSize: 1000, // 每次获取最大1000条
Offset: offset,
Fields: ["文本","帖子名称"]
});
allRecords = allRecords.concat(pageResult.records);
offset = pageResult.offset;
} while (offset);
console.log("当前表所有记录:", allRecords);
// 3. 生成超链接字段内容并构建更新数据
const updateRecords = allRecords.map(record => {
const ticketNumber = record.fields["文本"];
const ticketTitle = record.fields["帖子名称"];
return {
id: record.id,
fields: {
"超链接": {
address: `https://bbs.wps.cn/topic/${ticketNumber}`,
displayText: `${ticketTitle}`
}
}
};
});
// 4. 分批更新记录(每次最多100条)
const BATCH_SIZE = 100;
for (let i = 0; i < updateRecords.length; i += BATCH_SIZE) {
const batch = updateRecords.slice(i, i + BATCH_SIZE);
Application.Record.UpdateRecords({
SheetId: sheetId,
Records: batch
});
console.log(`已更新 ${Math.min(i + BATCH_SIZE, updateRecords.length)}/${updateRecords.length} 条记录`);
}
注意事项
由于是执行脚本批量写入字段,所以所有行记录的超链接地址前缀保持一致!