我正在使用Google sheets API和Nodejs将值附加到电子表格。但是,我想通过电子表格的名称获取电子表格ID,如果找不到,则创建一个新的电子表格。明确地说,我的意思是IFTTT的“附加到电子表格”操作。我事先不知道电子表格ID。
答案 0 :(得分:1)
假定您已经知道如何使用googleapis
进行身份验证,这是一个最小的示例,该示例如何查询Drive API以搜索具有特定名称的电子表格,以及如何使用Sheets API创建电子表格。 >
// auth is google.auth.OAuth2()
const sheets = google.sheets({version: 'v4', auth})
const drive = google.drive({version: 'v3', auth})
var fileName = 'yourSpreadSheetName'
var mimeType = 'application/vnd.google-apps.spreadsheet'
drive.files.list({
q: `mimeType='${mimeType}' and name='${fileName}'`,
fields: 'files(id, name)'
}, (err, res) => {
if (err) return console.log('drive files error: ' + err)
const files = res.data.files
if (files.length) {
// There is an existing spreadsheet(s) with the same filename
// The spreadsheet Id will be in files[x].id
console.log(`found spreadsheet with id: ${files[0].id}`)
} else {
// Create spreadsheet with filename ${fileName}
sheets.spreadsheets.create({
resource: {
properties: { title: fileName }},
fields: 'spreadsheetId'
}, (err, spreadsheet) => {
if (err) return console.log('spreadsheets create error: ' + err)
// The spreadsheet Id will be in ${spreadsheet.data.spreadsheetId}
console.log(`created spreadsheet with id: ${spreadsheet.data.spreadsheetId}`)
})
}
});