javascript - 按名称打开电子表格,如果没有找到则创建新电子表格
问题描述
我正在使用Google 表格 API和Nodejs将值附加到电子表格中。但是,我想通过电子表格的名称获取电子表格的 ID,或者如果没有找到,则创建一个新的电子表格。需要明确的是,我的意思是 IFTTT 的附加到电子表格操作。我无法事先知道电子表格 ID。
解决方案
假设您已经知道如何使用 进行身份验证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}`)
})
}
});
推荐阅读
- security - 在一个简单的程序中重命名本地绝对文件路径并上传到 github,这样没人知道我的目录,这有关系吗?
- vuetify.js - Vuetify 更改全局悬停/活动颜色
- javascript - 导致 RangeError 的 Node.Js 模块中的变量和模块范围:超出最大调用堆栈大小
- python - python中线性回归函数的输入问题(输入包含NaN,无穷大或对于dtype('float64')来说太大的值。)
- python - 如何减少python中重复优化约束的已用内存?
- rest - Postman Google API 请求给出“401:未经授权”
- c# - 如何在机器人框架 4 中使用文本提示?
- javascript - 创建具有动态行和列值的表格画布
- java - 解析 csv 时获取 urecognized 字段错误消息
- video - 什么是 ffprobe 元数据“程序”?