【发布时间】:2022-04-01 21:09:14
【问题描述】:
我通常可以在这里找到足够的信息来拼凑功能性(不优雅!)代码,但在这种情况下,我正在苦苦挣扎,需要一些帮助。
背景:
我有一个 Google 表单,用于向复制团队提交复制请求。该表单运行良好,并将响应转储到 Google 表格。文件上传到表单,Google 表格会创建文件的超链接,以便轻松访问它们。到目前为止一切顺利。
问题:
当用户提交多个文件时,它们将作为单个单元格中以逗号分隔的 URL 列表插入到 Google 表格中。这些 URL 不会自动转换为超链接,从而使重现团队更难访问文件。
解决方案?:
我正在尝试编写一个脚本,该脚本将(在提交表单时)检查 URL 单元格是否包含多个 URL(我认为检查是否有任何逗号会起作用)然后如果它确实将它们转换为超链接。
在之前的项目中,我能够使用以下代码在 Google Doc 中实现类似的功能:
//Convert text to hyperlinks
var urlRegex = 'http[s]?:\/\/[^ \n\r\v]+';
var urlElement = body.findText(urlRegex);
while (urlElement != null) {
var urlText = urlElement.getElement().asText();
var startOffset = urlElement.getStartOffset();
var endOffset = urlElement.getEndOffsetInclusive();
var urlString = urlText.getText().substring(startOffset, endOffset +1);
urlText.setLinkUrl(startOffset, endOffset, urlString);
urlElement = body.findText(urlRegex, urlElement);
}
我在想使用逗号可能比正则表达式更容易定位 URL,但我不知道从哪里开始。
示例 URL 单元格输出:
https://drive.google.com/open?id=199Uj-9fvctB6H6yoIRIvvo3x3pbAmRyO、https://drive.google.com/open?id=1PADRfFT00Hckatf395MG4ZEZ_E1q6weELAdGUqKYiRA、https://drive.google.com/open?id=1gchCWaOTJ6R7bfuD4-rUY4ZeLeF95FHI
【问题讨论】:
-
所有的 URL 谷歌驱动器链接都带有 id 吗? IE。里面可以有逗号吗?
-
如果没有逗号,那么 JavaScript 有一个很棒的内置
split函数。 -
首先,我建议将其作为问题发布到issuetracker.google.com/…(Sheets API,因为目前没有 Google Forms API 官方问题跟踪器)。
-
我不认为这是一个“问题”,也不是一个“错误”。目前还不清楚作者想要这些 URL 的位置。它是在文档还是表格中?无论哪种方式,split(",") 都可以将其分离成一个 URL 数组,然后从那里随心所欲。
标签: google-apps-script google-sheets hyperlink