如何限制Google Drive选择器仅显示电子表格?当前视图同时展示表格与表单
解决Google Drive选择器仅显示电子表格(排除Forms)的问题
我懂你的痛点——明明按官方文档加了google.picker.ViewId.SPREADSHEETS,结果Forms还是跟着Sheets一起显示出来,这确实挺烦人的。问题出在Google Drive的文件分类逻辑上:Forms默认被归到了“Spreadsheets”的视图分类里,所以单纯用视图ID没法区分开。
解决方案:通过MIME类型精确过滤
要只显示Google Sheets,你需要在视图里指定精确的MIME类型,把Forms的类型排除在外。Google Sheets的MIME类型是application/vnd.google-apps.spreadsheet,而Forms是application/vnd.google-apps.form,我们只需要保留前者。
修改你的代码,把原来的.addView(google.picker.ViewId.SPREADSHEETS)替换成带MIME过滤的视图配置:
function createPicker(token) { if (pickerApiLoaded && token) { var picker = new google.picker.PickerBuilder() // 替换原有的addView,添加MIME类型过滤 .addView(new google.picker.DocsView(google.picker.ViewId.SPREADSHEETS) .setMimeTypes('application/vnd.google-apps.spreadsheet')) .enableFeature(google.picker.Feature.NAV_HIDDEN) .hideTitleBar() .setOAuthToken(token) .setDeveloperKey(DEVELOPER_KEY) .setCallback(pickerCallback) .setOrigin(google.script.host.origin) .setSize(DIALOG_DIMENSIONS.width - 2, DIALOG_DIMENSIONS.height - 2) .build(); picker.setVisible(true); } else { showError('Unable to load the file picker.'); } }
为什么原来的方式不行?
官方的google.picker.ViewId.SPREADSHEETS视图是一个宽泛的分类,它包含了所有属于“电子表格类”的文件——而Google Forms在Drive的元数据里被标记为和Sheets同属一个大类,所以会被包含进来。通过setMimeTypes指定精确的类型,就能精准筛选出你要的Google Sheets文件了。
内容的提问来源于stack exchange,提问作者beano
相关产品推荐
相关产品推荐

