了解最新技术文章
正确地对待人在交流中至关重要,因为它显示出尊重、包容和专业精神。在本文中,我们将向您展示如何构建一个宏 办公室记录 利用性别.ioAPI生成适当的个性化问候。
性别平等 是一个API服务,它预测与给定名称相关的性别。它为开发人员提供了一种将性别识别功能整合到他们的应用程序或脚本中的简单方法。通过发送姓名作为性别化API的参数,用户会收到包含预测性别和预测的信任度等额外信息的回复。综合组织简化了确定与给定名称有关的性别的过程。
我们先初始化 工作表 变量,它对活动表具有引用性.通过访问活动表,我们可以操作电子表格中的数据:
const oWorksheet = Api.GetActiveSheet()
接下来,我们初始化 行 变量为2,表示列A中数据的起始行。此变量跟踪当前正在处理的行:
let ROW = 2
为了处理每一行,我们有 检查站 职能。它的主要目标是对每一行进行迭代并处理处理逻辑。在里面 检查站 功能,我们使用 oWorksheet.GetRange(A${ROW}).GetText() 声明。此方法检索当前行中列中单元格的文本值:
function checkRow() { const name = oWorksheet.GetRange(`A${ROW}`).GetText() }
如果检索到的名称是空的,则表示数据的结束。在这种情况下,我们称之为 再装 功能,负责重新加载表。另一方面,如果检索到的名称不是空的,我们将继续调用 请求 功能,将名称作为参数传递:
function checkRow() { const name = oWorksheet.GetRange(`A${ROW}`).GetText() if (name === '') { return reload() } makeRequest(name) }
的目的 请求 功能是向性别平等宣传册发送Ajax请求:
function makeRequest(name) { $.ajax({ url: `https://api.genderize.io?name=${name}`, dataType: 'json', }).done(successFunction) }
一旦收到了性别平等宣传材料的答复,即: 继承职能 已被调用。在…之内 继承职能 ,我们首先检查性别决定的概率是否大于0.9%。如果是这样,我们根据API响应中的性别值分配适当的头衔:
function successFunction(data) { if (data.probability > 0.9) { let title = data.gender === 'male' ? 'Mr' : 'Ms' } }
为了产生个性化的问候,我们使用 oWorksheet.GetRange(B${ROW}).SetValue(…) 方法。我们可以在列中设置值 B 就在这排。在成功处理当前行之后,我们增加了 行 变量然后打电话给 检查站 又是功能。这种递归方法确保我们继续迭代每个后续行,直到数据结束:
function successFunction(data) { if (data.probability > 0.9) { let title = data.gender === 'male' ? 'Mr' : 'Ms' oWorksheet.GetRange(`B${ROW}`).SetValue(`Dear ${title} ${data.name}!`) } ROW++ checkRow() }
一旦检测到数据的结束,我们就调用重新加载函数。这个函数的目的是重新加载表,触发重新计算所有公式。为了达到这个目的,我们利用 塞廷特娃 l 定期执行 计算鸦片含量(Asc.c) _oAscCalculateType.All) 重新计算表中所有公式的函数:
function reload() { let reload = setInterval(function(){ Api.asc_calculate(Asc.c_oAscCalculateType.All); }) } })()
整个宏代码如下:
(function(){ const oWorksheet = Api.GetActiveSheet() let ROW = 2 checkRow() // Recursively request each name until 'A' column value is empty // // checkName -> makeRequest -> successFunction (ROW + 1) -> // checkName -> ... -> checkName -> name is empty -> reload function checkRow() { const name = oWorksheet.GetRange(`A${ROW}`).GetText() if (name === '') { return reload() } makeRequest(name) } // Request function makeRequest(name) { $.ajax({ url: `https://api.genderize.io?name=${name}`, dataType: 'json', }).done(successFunction) } // Response function successFunction(data) { if (data.probability > 0.9) { let title = data.gender === 'male' ? 'Mr' : 'Ms' oWorksheet.GetRange(`B${ROW}`).SetValue(`Dear ${title} ${data.name}!`) } ROW++ checkRow() } // Sheet has to be reloaded on changes function reload() { let reload = setInterval(function(){ Api.asc_calculate(Asc.c_oAscCalculateType.All); }) } })()
让我们运行宏,看看它是如何工作的!