如何在Google Sheets中添加「上传PDF」功能选项?
在Google Sheets中添加PDF上传选项的方案
完全可行,给你两种适合新手的实现方式:
方法一:关联Google Forms(零代码,最简单)
- 新建Google Forms,添加与你表格对应的字段:姓名、活动日期、地点。然后添加「文件上传」字段,设置仅允许上传PDF格式。
- 切换到Forms的「响应」标签,点击「链接到表格」,选择你已有的Google Sheets文件。之后用户提交表单时,输入的信息和上传的PDF会自动同步到表格中,PDF将以可点击的链接形式出现在对应列。
方法二:用Apps Script自定义上传按钮(表格内直接操作)
如果你想在表格界面直接完成上传,可通过简单脚本实现:
- 打开你的Google Sheets,点击菜单栏「扩展」→「Apps Script」。
- 删除默认代码,粘贴以下脚本:
function uploadPDF() { const ui = SpreadsheetApp.getUi(); // 获取学生姓名 const namePrompt = ui.prompt('请输入学生姓名:'); const studentName = namePrompt.getResponseText(); if (!studentName) return; // 选择PDF文件 const filePrompt = ui.prompt('上传PDF文件', ui.ButtonSet.OK_CANCEL); if (filePrompt.getSelectedButton() !== ui.Button.OK) return; // 指定存储PDF的Drive文件夹(替换为你的文件夹ID) const storageFolder = DriveApp.getFolderById('你的Drive文件夹ID'); const uploadedFile = storageFolder.createFile(filePrompt.getResponseText()); // 验证文件格式 if (uploadedFile.getMimeType() !== 'application/pdf') { ui.alert('仅支持PDF格式,请重新上传'); uploadedFile.setTrashed(true); return; } // 将PDF链接写入对应学生行(假设姓名在A列,链接写入D列) const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const dataRows = activeSheet.getDataRange().getValues(); for (let i = 1; i < dataRows.length; i++) { if (dataRows[i][0] === studentName) { activeSheet.getRange(i + 1, 4).setValue(uploadedFile.getUrl()); ui.alert('上传成功'); return; } } ui.alert('未找到该学生的信息'); }
- 保存脚本(命名如「PDFUploader」),首次运行需按提示完成权限授权。
- 返回表格,可通过「扩展」→「自定义菜单」调用上传功能,或插入一张绘图作为按钮,右键分配脚本为
uploadPDF。
提示:Drive文件夹ID可在文件夹的URL中获取(如
https://drive.google.com/drive/folders/XXXX中的XXXX)。
注意事项
- 推荐优先用方法一,无需代码,数据整理更规范,适合新手操作。
- 确保你的Google Drive有足够存储空间,避免因空间不足导致上传失败。
内容的提问来源于stack exchange,提问作者HPS
相关产品推荐
相关产品推荐

