首页 > 解决方案 > 在 Dart/Flutter 中使用 Google 表格

问题描述

我正在尝试编写一个简单的 Dart/Flutter 程序。实际上,我正在尝试在更复杂的功能中添加一个功能,但是由于我已经连续两天尝试了所有方法,而且我开始失去理智,所以我会接受这个。

理想情况下,我的代码将允许我从用户的个人 Google 表格中选择一个电子表格,从中读取,创建一个新表格并在其上写入一些信息。

现在,如果有人能告诉我如何在用户的个人 Google 表格上创建电子表格并在 A1 上写一个简单的值,我将永远欠那个人的债。它甚至不需要在屏幕上显示任何内容。只需创建那个该死的电子表格。

我以前从未使用过 Google API,所以我可能做错了什么,但我不知道它是什么。

谢谢

编辑:我最后一次尝试

import 'package:googleapis/sheets/v4.dart';
import "package:googleapis_auth/auth_io.dart" as auth;

void main() {

  var id = auth.ClientId(
      "...myID....apps.googleusercontent.com",  
      "...");
  var scopes = ["https://www.googleapis.com/auth/spreadsheets"];



  auth.clientViaUserConsent(id, scopes, prompt).then((auth.AuthClient client) {
    SheetsApi api = SheetsApi(client);
    //Here I'd do things, if I could
    client.close();
  });
}

void prompt(String url) {
  print("Please go to the following URL and grant access:");
  print("  => $url");
  print("");
}

我转到 URL,并授予访问权限,但随后我被重定向到我的本地主机

标签: flutterdartgoogle-sheetsgoogle-api

解决方案


您只需要使用电子表格的 JSON 表示形式向https://sheets.googleapis.com/v4/spreadsheets端点发送 POST 请求,例如:

{
  "spreadsheetId": string,
  "properties": {
    object (SpreadsheetProperties)
  },
  "sheets": [
    {
      object (Sheet)
    }
  ],
  "namedRanges": [
    {
      object (NamedRange)
    }
  ],
  "spreadsheetUrl": string,
  "developerMetadata": [
    {
      object (DeveloperMetadata)
    }
  ]
}

您可以在官方google sheet API 文档中获得更多信息。

如果您想开始使用电子表格操作的项目,googleapis包是必须的。


推荐阅读