我在谷歌硬盘上有一个谷歌电子表格文件。Google Drive Web可以上传Excel文件,并将其作为新的工作表导入到现有文件中。
我想通过使用Google Drive或Google Spreadsheet API来做同样的事情,但我没有找到如何使用API文档来做。
我知道如何使用Google_drive gem上传Excel文件并将其转换为谷歌电子表格,但如何将两个电子表格合并为一个?
UPD:是否有人会寻找这个问题的答案我按照@eddyparkinson建议的创建了谷歌应用程序脚本
// 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上传文件并调用谷歌应用程序脚本
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) 谷歌应用程序脚本将复制它:https://developers.google.com/apps-script/reference/spreadsheet/sheet#copyTo(电子表格)
2) 谷歌电子表格api的唯一选项是手动复制。所以,加载要复制的工作表,并在电子表格中创建新的工作表保存复制的值。即文档中没有任何内容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)那会帮你复印的。