如何修改Google Script替换Google Sheet超链接中的文件名文本
解决Google Script中超链接显示文本提取问题
核心思路
直接在脚本中通过正则表达式提取文件名末尾的年份-数字格式内容,将其作为超链接的显示文本,无需依赖Sheet函数。
修改后的脚本示例
function importFilesToSheet() { const folderId = "你的目标文件夹ID"; // 替换为实际文件夹ID const folder = DriveApp.getFolderById(folderId); const files = folder.getFiles(); const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 清空原有内容并添加表头 sheet.clearContents(); sheet.appendRow(["文件名", "文件链接", "超链接"]); while (files.hasNext()) { const file = files.next(); const fileName = file.getName(); const fileUrl = file.getUrl(); // 提取文件名末尾类似"2023-1"的部分 const targetText = fileName.match(/\d{4}-\d+$/)?.[0] || fileName; // 插入带自定义显示文本的超链接 sheet.appendRow([fileName, fileUrl, `=HYPERLINK("${fileUrl}", "${targetText}")`]); } }
关键细节说明
- 正则表达式
/\d{4}-\d+$/: 精准匹配文件名末尾的**4位年份-数字序列**(如2023-1、2024-12),$`确保匹配的是文件名最后一段内容 match()?.[0] || fileName: 可选链操作符避免匹配失败时报错,如果没有找到符合格式的内容,自动用原文件名兜底- 若你的文件名格式有变化(比如年份是2位、或目标序列前有分隔符),可调整正则:
- 例如文件名是
项目文档_2023-1,可改用/_(\d{4}-\d+)$/,然后取matchResult[1] - 例如目标序列不一定在最后,可去掉
$,改用/\d{4}-\d+/
- 例如文件名是
内容的提问来源于stack exchange,提问作者melechsmiles
相关产品推荐
相关产品推荐

