【问题标题】:Google spreadsheets api - export all sheets as csvGoogle 电子表格 api - 将所有工作表导出为 csv
【发布时间】:2016-09-26 12:18:36
【问题描述】:

我使用 google drive api 从 drive.google.com 导出文件:

compile 'com.google.apis:google-api-services-drive:v2-rev201-1.21.0'

使用方式:

Map<String, String> exportLinks = gFile.getExportLinks();
String exportLink =
exportLinks.get("application/x-vnd.oasis.opendocument.spreadsheet");

我想将电子表格下载为 csv 而不是 ods,但如果我使用

String exportLink = exportLinks.get("text/csv");

它只下载第一张纸。如果我知道它的 gid,我可以指定工作表。如何获取所有页面的链接?

【问题讨论】:

  • 你需要在某个地方添加 Covert=true。我没有java的力量,但我认为应该有一些在get方法上。假设您使用的是 Google 的 java 客户端库。
  • 虽然不是解决方案,但您可以使用 this appscript 在 Java 中制作类似的东西。不过,这个问题对我来说与 Sheets API 更相关,因此循环通过工作表可以帮助您获得可用于导出它的 gid

标签: java google-drive-api export spreadsheet


【解决方案1】:

所以我决定使用 Google 表格,这对我有帮助:

compile (group: 'com.google.apis', name: 'google-api-services-sheets', version: 'v4-rev25-1.22.0')
compile (group: 'com.google.gdata', name: 'core', version: '1.47.1')

GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
                    httpTransport, jsonFactory, clientSecrets,
                    Arrays.asList(DriveScopes.DRIVE, SheetsScopes.SPREADSHEETS_READONLY))
                    .setDataStoreFactory(dataStoreFactory)
                    .setAccessType("offline")
                    .build();
Credential credential = flow.loadCredential(userId);
Sheets sheets = new Sheets.Builder(httpTransport, jsonFactory, credential)
                    .setApplicationName(APPLICATION_NAME)
                    .build();
List<Sheets> sheetsList = sheets.spreadsheets().get("mySpreadsheetId").execute().getSheets();
for (Sheet sh : sheetList) {
    sout(sh.getProperties().getSheetId());
}

并且属性包含表格 gids。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多