首页 > 解决方案 > 尝试将文件夹中的所有 google 表格文件导入电子表格,所有列标题都相同

问题描述

我需要能够从驱动器中的文件夹中获取所有文件并将数据输入电子表格。我还在创建一个菜单选项卡,这样我就可以运行脚本而无需进入编辑器。如果我可以创建一种方法来输入现有文件夹名称的名称,而无需总是转到脚本以执行该额外步骤,那就太好了。这是我正在使用的脚本。我真的需要这方面的帮助。

function importTimesheets() {
 var spreadsheets = DriveApp.
   getFolderById("").
   getFilesByType(MimeType.GOOGLE_SHEETS);

 var data = [];
 while (spreadsheets.hasNext()) {
   var currentSpreadsheet = SpreadsheetApp.openById(spreadsheets.next().getId());
   data = data.concat(currentSpreadsheet   
                        .getSheetByName('Timesheet')
                      .getRange("A3:L10")
                        .getValues()
                          );
 }

 SpreadsheetApp.
   getActiveSheet().
   getRange(1, 1, data.length, data[0].length).
   setValues(data);
}


function onOpen() {
 var ui = SpreadsheetApp.getUi();
 ui.createMenu('Generate Timesheets')
     .addItem('Generate', 'importTimesheets')

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


据我了解,您正在尝试为这行代码寻找解决方案,目前您必须手动输入 ID。

   DriveApp.getFolderById("")

我的建议是提示用户输入文件夹 ID,因为如果多个文件夹具有相同的名称,提示输入文件夹名称可能会导致错误。我的建议执行如下:

const folderId = SpreadsheetApp.getUi().prompt("Please enter the Folder Id").getResponseText()
const folder = DriveApp.getFolderById(folderId)

您还可以使用 Google 文件/文件夹选择器,如此处所述来搜索和选择文件夹。


推荐阅读