如果找到 none,则按名称打开电子表格或创建新电子表格
Open spreadsheet by name or create new spreadsheet if none is found
我正在使用 Google sheets API and Nodejs 将值附加到电子表格。但是,我想通过电子表格的名称获取电子表格 ID,或者如果找到 none 则创建一个新的电子表格。需要明确的是,我的意思是 IFTTT 对其 Append to Spreadsheet 操作所做的操作。我无法事先知道电子表格 ID。
假设您已经知道如何使用 googleapis
进行身份验证,下面是一个最小示例,说明如何查询云端硬盘 API 以搜索具有特定名称的电子表格并使用表格 API 如果有 none.
则创建
// 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}`)
})
}
});
我正在使用 Google sheets API and Nodejs 将值附加到电子表格。但是,我想通过电子表格的名称获取电子表格 ID,或者如果找到 none 则创建一个新的电子表格。需要明确的是,我的意思是 IFTTT 对其 Append to Spreadsheet 操作所做的操作。我无法事先知道电子表格 ID。
假设您已经知道如何使用 googleapis
进行身份验证,下面是一个最小示例,说明如何查询云端硬盘 API 以搜索具有特定名称的电子表格并使用表格 API 如果有 none.
// 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}`)
})
}
});