使用Excel文件更新Google电子表格表格

时间:2019-01-17 19:48:02

标签: excel google-apps-script google-sheets

我需要更新共享的表。该表的信息首先被收集到Excel表文件中,然后每天上传到Google Drive。我找到了一些将.xls文件转换为google电子表格文件的代码,我需要从此转换后的文件中复制数据并每天更新共享的文件。我现在的问题是,每天用于更新共享电子表格的文件会有所不同,因此我如何拥有每天获取新文件ID的脚本。我需要每天自动完成这些更新。 这是我到目前为止找到的代码,但似乎无法使其正常工作。第一部分将.xls文件转换为可以工作的google电子表格文件,但是我似乎无法获得更新共享表的功能,但无法获得创建文件的ID。如果将功能添加到代码中以在转换文件并使用它们更新共享表后删除文件,那也很好。

 function importXLS(){
  var files = DriveApp.searchFiles('title contains ".xls"');
  var destinationFolderId = "ID of folder with .xls file that is being converted each day";
  var existingFileNames = getFilesInFolder(destinationFolderId);
  while(files.hasNext()){
    var xFile = files.next();
    var name = xFile.getName();
    try {
      if (existingFileNames[name] && (name.indexOf('.xls')>-1)) {
        var ID = xFile.getId();
        var xBlob = xFile.getBlob();
        var newFile = { title : name,
                       key : ID,
                       'parents':[{"id": destinationFolderId}]
                      }
        file = Drive.Files.insert(newFile, xBlob, {
          convert: true
        });
      }
    } catch (error) {
      console.error("Error with file " + name + ": " + error);
    }
  }
}

/**
 * Get an object of all file names in the specified folder.
 * @param {string} folderId
 * @returns {Object} files - {filename: true}
 */
function getFilesInFolder(folderId) {
  var folder = DriveApp.getFolderById(folderId);
  var filesIterator = folder.getFiles();
  var files = {};
  while (filesIterator.hasNext()) {
    var file = filesIterator.next();
    files[file.getName()] = true;
  }
  return files;
}

function CopyContent() {
var ID = importXLS(ID); 
 var source = SpreadsheetApp.openById(importXLS(ID));//the source needs to be the new file i get eachday


 var sheet = source.getSheets()[0];


var destination = SpreadsheetApp.openById("ID of shared table here");
 sheet.copyTo(destination);

}

1 个答案:

答案 0 :(得分:0)

使用选择性粘贴>仅粘贴值

要使用的<div data-js="product-variants-object" data-variants='[{"key": "value"}]'></div>copypastetype

来自https://developers.google.com/apps-script/reference/spreadsheet/range#copytodestination-copypastetype-transposed

的示例
PASTE_VALUES