如何使用Google Drive / Spreadsheet API将excel文件转换/导入为新的工作表?

我在Google云端硬盘上有一个Google电子表格文件。 Google Drive Web可以上传Excel文件并将其作为新的工作表导入到现有文件中。

我想通过使用Google云端硬盘或Google Spreadsheet API来做同样的事情,但我没有find如何使用API​​文档来做到这一点。

我知道如何上传Excel文件并使用google_drive gem将其转换为Google电子表格,但是如何将两个电子表格合并为一个?

UPD:如果有人会在这个问题上寻找答案,我创build了Google-Apps-Script,就像@eddyparkinsonbuild议的一样

// Script-as-app template. function doGet(e) { if (typeof e.parameter.src === 'undefined' || !e.parameter.dst === 'undefined') { return result({ status: 404, message: 'src or dst parameter is not defined. Use next format: ?src=key&dst=key[&src_sheet=0 or sheet name]' }); } Logger.log('src is "%s", dst is "%s"', e.parameter.src, e.parameter.dst); var source = SpreadsheetApp.openById(e.parameter.src); if (typeof source === 'undefined') { return result({ status: 404, message: 'The source spreadsheet (key: "'+ e.parameter.src +'") has not been found.' }); } var destination = SpreadsheetApp.openById(e.parameter.dst); if (typeof destination === 'undefined') { return result({ status: 404, message: 'The destination spreadsheet (key: "'+ e.parameter.dst +'") has not been found.' }); } var sourceSheet; if (typeof e.parameter.src_sheet !== 'undefined') { Logger.log('src_sheet is "%s"', e.parameter.src_sheet); var sheetIndex = parseInt(e.parameter.src_sheet); Logger.log('sheetIndex is %s', sheetIndex); if (isNaN(sheetIndex)) { Logger.log('getSheetByName'); sourceSheet = source.getSheetByName(e.parameter.src_sheet); if (typeof sourceSheet === 'undefined') { return result({ status: 404, message: 'The src_sheet name is not exist in the source spreadsheet.' }); } } else { var sheets = source.getSheets() if (sheetIndex >= sheets.length) { return result({ status: 404, message: 'The src_sheet index is out of range of sheets.' }); } sourceSheet = sheets[sheetIndex]; } } else { sourceSheet = source.getSheets()[0]; } sourceSheet.copyTo(destination); return result({ status: 200 }); } var resultData; function result(value) { resultData = value; return HtmlService.createTemplateFromFile('status').evaluate(); } 

在那里我等待电子表格的src和dst键。

在ruby中,我使用google_drive gem上传文件并调用Google App脚本

  def self.upload_to_google_drive() session = GoogleDrive.login('email', 'password') f1 = session.upload_from_file('parsed/xlsx/#CAR06022540.xlsx', "#CAR06022540") f2 = session.upload_from_file('parsed/xlsx/#CAR06031629.xlsx', "#CAR06031629") url = "https://script.google.com/macros/s/AKfycbzOeZJ4LuvBxFqyi1WDpzNiKbhkjp33D9yWTOTLlq3g56sCqJ_e/exec?src=#{f1.key}&dst=#{f2.key}" # call Google-apps-script result = session.request(:get, url) puts result end 

复制到其他电子表格选项:

1) Google-apps-script将复制它: https : //developers.google.com/apps-script/reference/spreadsheet/sheet#copyTo(Spreadsheet)

2) 谷歌电子表格-API的唯一select看起来是手动复制。 因此,加载要复制的工作表,并在电子表格中创build新工作表以保存复制的值。 即文档https://developers.google.com/google-apps/spreadsheets/ 示例中没有任何内容(ListDemo.java或http://gdata-java-client.googlecode.com/svn-history/r51/ trunk / java / sample / spreadsheet / cell / CellDemo.java )将为您做副本。