如何使用Google Sheets API v4获取电子表格的创建与修改日期
你调用的spreadsheets.values.batchGet接口仅用于获取表格的单元格值数据,本身不支持返回电子表格的元数据属性,所以你在该接口的fields参数中配置title、时间相关字段都会报错,即使配置通配符*也不会返回你需要的元信息。
解决方案
你需要调用spreadsheets.get接口获取电子表格的元数据,操作说明如下:
- 接口请求必填参数为
spreadsheetId(你的电子表格ID),fields参数填写properties.title,properties.createdTime,properties.modifiedTime即可精准获取你需要的三个字段 - 接口返回的结构示例如下:
{ "properties": { "title": "示例电子表格标题", "createdTime": "2023-03-15T08:22:19.635Z", "modifiedTime": "2024-06-10T11:47:32.451Z" } }
如果你使用NodeJS的官方googleapis库调用,示例代码如下:
const { google } = require('googleapis'); // yourAuthInstance为你已经完成授权的OAuth2或者服务账号实例 const sheetsService = google.sheets({ version: 'v4', auth: yourAuthInstance }); async function getSpreadsheetMetadata(spreadsheetId) { const response = await sheetsService.spreadsheets.get({ spreadsheetId: spreadsheetId, fields: 'properties.title,properties.createdTime,properties.modifiedTime' }); return response.data.properties; }
补充说明
如果你需要同时获取单元格内容和元数据,可以选择两种方案:
- 分别发起两次请求,一次调用
spreadsheets.values.batchGet获取单元格内容,一次调用spreadsheets.get获取元数据,性能最优 - 直接调用
spreadsheets.get时新增参数includeGridData: true,即可在单次请求中同时拿到元数据和所有单元格内容,缺点是返回数据量较大,适合小型表格使用
内容的提问来源于stack exchange,提问作者print
相关产品推荐
相关产品推荐

