7

Will there be Google Sheets API v4 support for Dart/Flutter, if yes when is it coming? It already has support for many languages but Dart/Flutter is not listed in their guides.

Din
  • 505
  • 4
  • 11
  • 21

3 Answers3

13

googleapis package can be used in Flutter and supports Sheets v4

See also this similar Stack Overflow question

Omatt
  • 8,564
  • 2
  • 42
  • 144
Günter Zöchbauer
  • 623,577
  • 216
  • 2,003
  • 1,567
5

I created a project, enabled the sheets API for it, then created a 'robot-style' service account, and download the key as JSON. I then created a Google Sheet, and made it publicly accessible, noting its key.

This code connects, and updates an existing sheet by appending a new line of data. No error handling, but some print() statements to help visualise the flow.

// Key for service account copied from downloaded file for demo purposes ;-)
final _key = {
  "type": "service_account",
  "project_id": //etc
  // ...
  // ...
};

print('getting oauth');
auth
    .obtainAccessCredentialsViaServiceAccount(
        auth.ServiceAccountCredentials.fromJson(_key),
        scopes,
        http.Client())
    .then((auth.AccessCredentials cred) {
  print('got oauth');

  auth.AuthClient client = auth.authenticatedClient(http.Client(), cred);
  SheetsApi api = new SheetsApi(client);
  ValueRange vr = new ValueRange.fromJson({
    "values": [
      [ // fields A - J
        "15/02/2019", "via API 3", "5", "3", "3", "3", "3", "3", "3", "3"
      ]
    ]
  });
  print('about to append');
  api.spreadsheets.values
      .append(vr, '1cl...spreadsheet_key...W5E', 'A:J',
          valueInputOption: 'USER_ENTERED')
      .then((AppendValuesResponse r) {
    print('append completed.');
    client.close();
  });
  print('called append()');
});
print('ended?');

}

Eric Aya
  • 69,473
  • 35
  • 181
  • 253
Michael Davies
  • 1,542
  • 1
  • 12
  • 19
1

There's a dart 3rd party library that helps to perform basic operations https://pub.dev/packages/gsheets.

You can also use official library https://pub.dartlang.org/packages/googleapis that helps to perform almost any operation, but it's more difficult to use and sometimes requires knowledge of the API https://developers.google.com/sheets/api/reference/rest