2016-12-05 69 views
0

我有一个使用Google Drive和Spreadsheets API的网站。如果没有找到具有特定条件的电子表格,我想要做的是在用户的Google云端硬盘上创建电子表格。 电子表格应该是我的Google云端硬盘上公开电子表格的副本。如何从模板创建Google电子表格?

/** 
* Find the right file. 
*/ 
function findFile() { 
    appendPre('Finding file…') 
    var request = gapi.client.drive.files.list({ 
    "q": "fullText contains 'Omregning fra klokketimer (60 minutter) til skoletimer (45 minutter) (Summering av fravær i Skolearena er i klokketimer)'" 
    }); 
    request.execute(function(resp) { 
    if (!resp.error) { 
     console.log(resp); 
     spreadSheetId = getID(resp.items); 
    } else if (resp.error.code == 401) { 
     // Access token might have expired. 
     checkAuth(); 
    } else { 
     appendPre('An error occured: ' + resp.error.message); 
    } 
    }); 
} 

/** 
* Find ID of the right file or create a file if none exist and return ID 
*/ 
function getID(items) { 
    for (var i = 0; i < items.length; i++) { 
    if (items[i].mimeType == "application/vnd.google-apps.spreadsheet") { 
     return items[i].id; 
    } 
    } 
    // Code to create spreadsheet from public spreadsheet here 
} 

我试过看API文档和谷歌搜索,但我还没有发现任何关于如何做到这一点。我真的希望这是可能的。

+0

您是否尝试过使用[模板](https://developers.google.com/drive/v3/web/integrate-create#create_a_new_file_from_the_drive_ui) [变量替换](https://developers.google.com/drive/v3/web/enable-sdk#open_url)来构建请求URL? –

回答

1

解决的办法是比我想象其实更容易:

function copyFile(id, name) { 
    var body = {'title': name}; 
    var request = gapi.client.drive.files.copy({ 
    'fileId': id, 
    'resource': body 
    }); 
    request.execute(function(resp) { 
    console.log('Copy ID: ' + resp.id); 
    return resp.id; 
    }); 
} 
相关问题