当前位置: 首页 > 知识库问答 >
问题:

使用Sheets API v4获取Google Sheets最后编辑日期(Java)

凌朗
2023-03-14

我在Android中使用Google Sheets API v4。

https://developers.google.com/sheets/api/quickstart/android

我需要知道最后一次修改表单的时间(包括用户);我需要这个人:

我想这样做:

    Spreadsheet spreadsheet = sheetsService.spreadsheets().get(spreadsheetId).setIncludeGridData(true).execute();
    Date date = spreadsheet.getProperties().getLastEditDate();

但是,当然,不存在这样的getLastEditDate()property方法。是否需要调用参数或其他API方法来获取此数据?

更好的是获得每个单元格的修改日期...但是我会满足于整个电子表格或工作表的日期。

共有3个答案

夹谷俊远
2023-03-14

sheets api v3将在2020年3月被弃用,届时,您最好使用驱动器api。

https://developers.google.com/drive/api/v3/reference/files/list

你可以通过

长孙高远
2023-03-14

看起来这不能用工作表API v4完成。

但是...它看起来确实可以用兼容的谷歌硬盘应用编程接口v3来完成。

注意:这个解决方案最好的部分是,我可以对这两个API使用相同的身份验证和凭据收集方法。例如,一旦我有了获取凭证的代码,我就可以交替和连续地将其用于API。

我是这么做的:

将此添加到我的构建中。gradle(如下所示为我的API声明)

compile('com.google.apis:google-api-services-sheets:v4-rev468-1.22.0') {
    exclude group: 'org.apache.httpcomponents'
}
compile('com.google.apis:google-api-services-drive:v3-rev69-1.22.0') {
    exclude group: 'org.apache.httpcomponents'
}

我已经在使用EasyPermissions方法获取帐户和凭据。这里有一个很好的例子。

然后

import com.google.api.services.drive.Drive;

...

protected Drive driveService = new Drive.Builder(transport, jsonFactory, credential)
            .setApplicationName("My Application Name")
            .build();

...异步:

private DateTime getSheetInformation() throws IOException {

    String spreadsheetId = settings.getSpreadsheetId();
    Drive.Files.Get fileRequest = driveService.files().get(spreadsheetId).setFields("id, modifiedTime");
    File file = fileRequest.execute();
    if (file != null) {
        return file.getModifiedTime();
    }
    return null;
}
通安宁
2023-03-14

这在Sheets API中不可用,但您可以使用驱动器API的文件。get方法,该方法在响应中包含“modifiedTime”。(请注意,默认情况下,它将不包括修改的时间,您必须在“fields”参数中明确要求它。)

 类似资料:
  • 我必须将这些详细信息显示在gridview中,如Tempname,作为下拉列表中唯一的和相关的日期时间,以及标签中最后一次按名称运行。无法上传表格图片,因为我没有足够的声誉。 但是我无法在标签中获得Runby名称。怎么显示?下面是我的存储过程

  • 在评论中,这是我在ATM上的代码: Atm I有两个函数:一个可以将字符串转换为日历的星期数,另一个是我正在搜索的方法。目前它只处理今天的一周中的一天正确的,应该做的工作为一周中的每隔一天的部分是缺失的(评论与...)

  • 问题内容: 我需要获取一个月的第一个日期和最后一个。获取第一个是微不足道的,但是获取最后一个似乎需要一些逻辑,因为月份的长度不同,而2月的长度甚至会随着年份而变化。是否已经在JodaTime中内置了对此机制,还是应该自己实现? 问题答案: 怎么样: 以知道来源的方式传回,代表a 代表[每月的月份]栏位。 碰巧的是,该方法甚至记录在案,以推荐它用于此特定任务: 由于月份长度不同,此操​​作对于在每月

  • 我有一张每天更新数据的表。我使用Java工作表API v4在我的java应用程序中加载数据,我需要在我的工作表上进行增量加载。有没有办法高效地做到这一点? 这是我的电话,但这每次都加载所有数据,是否可以添加过滤器以在特定日期后更新行?(考虑到表没有时间戳列,我可以使用行的插入/修改日期吗?) 另外,如果有时间戳列,是否有方法在加载前过滤数据?

  • 问题内容: 我想从 handleClick 函数中给定的日期列表中获得最大日期。如何使用 moment.js 从日期列表中找到最大日期? 我有以下代码: 问题答案: 您可以使用moment.max函数:

  • 下面是我用来访问过去10天前的日期的代码。输出为'20130103',即今天的日期。我如何返回今天的日期-10天?我被限制使用内置的java日期类,所以不能使用joda时间。