google-apps-script - 您可以使用 Google Apps 脚本查找和替换公式中的 URL 吗?
问题描述
我正在为教师创建一个汇总表,以提取所有学生的数据。每列是一个不同的学生,并且该学生的文件具有不同的 URL。我有 50 多名教师和 850 多名学生。我试图找到一种使用谷歌应用程序脚本来查找和替换列中的 URL 的方法。到目前为止,我有这段代码,我可以在日志中看到“baseLink”和“replaceLink”,但我不知道该怎么做才能让它们被替换。我附上了我正在使用的电子表格的快照,以防有助于更好地解释我的问题。您可以看到我使用 importrange 公式来提取 URL,而这些是需要更改的。我确实需要通读所有的专栏,但我很高兴能先学习如何做一个专栏。谢谢你的帮助!
这是我拥有的代码,其中有一行需要帮助的伪代码:
function UpdateColumnLinks() {
var ss = SpreadsheetApp.getActiveSheet();
var range = ss.getRange('G1:G76');
var baseLink = ss.getRange('R2').getValue(); //This is the URL of a spreadsheet I want to replace that is in the formula
var replaceLink = ss.getRange('S10').getValue(); //This is the URL of a spreadsheet I want to see in the formula
Logger.log(baseLink)
Logger.log(replaceLink)
for i = 0; i<range.length; i++ {
pseudo code: find baseLink in range and replace with replaceLink
}
}
解决方案
替换电子表格中的链接
富文本链接:
function UpdateColumnLinks() {
var sh=SpreadsheetApp.getActiveSheet();
var rg=sh.getRange(1,3,sh.getLastRow(),1);
var dvs=rg.getRichTextValues();
var rl=sh.getRange(1,1).getRichTextValue().getLinkUrl();replacement link
var ls=SpreadsheetApp.newRichTextValue().setText(rl).build();
for(var i=0;i<dvs.length;i++) {
var link=dvs[i][0]=ls;
}
rg.setRichTextValues(dvs);
}
公式链接:
function UpdateColumnLinks1() {
const sh=SpreadsheetApp.getActiveSheet();
const rl=sh.getRange(1,1).getFormula();
const rg=sh.getRange(1,3,sh.getLastRow(),1);
var vs=rg.getFormulas();
vs.forEach(function(r,i){
r[0]=rl;
});
rg.setFormulas(vs);
}
您的具体情况:
function UpdateColumnLinks() {
var ss=SpreadsheetApp.getActiveSheet();
var rg=ss.getRange('G1:G76);
var fA=rg.getFormulas();
var rl=ss.getRange('S10').getFormula();
fA.forEach(function(r){r[0]=rl;});
rg.setFormulas(fA);
}
推荐阅读
- sql - 如何在多行上比较多列 - 比较仅适用于持有共同 ID 的行
- python - 无法在自定义 Keras 损失函数中向 VGG 提供标签
- php - 如何在 Laravel 中测试 DELETE api?
- java - 为什么java未知:import org.apache.commons.codec.binary.Base64;?
- javascript - webpack 会自动删除这种类型的代码吗?
- symfony - 属性路径中给出的“字符串”、“空”类型的预期参数
- java - toArray() 返回对象[]
- python - tf.function 输入参数
- google-api - Google Calendar Api - Python - 同步令牌、刷新令牌
- python - Apache Airflow:新角色的一些权限被重置