# @flink-app/google-sheets-plugin 中文文档

规范地址：https://npmcn.com/package/%40flink-app/google-sheets-plugin/

版本：2\.0\.0-alpha\.134
npm 元数据更新时间：2026-11-07T11:33:15.171Z
中文译文更新时间：2026-11-15T01:07:12.308Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40flink-app/google-sheets-plugin
原文对照：https://npmcn.com/package/%40flink-app/google-sheets-plugin/?lang=original

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：40.4 kB，18 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：2 个
- peer 依赖：@flink-app/flink \>=2\.0\.0-alpha\.134
- 首次发布：2026-03-02T19:21:29.802Z
- 最新版本发布：2026-11-07T11:30:29.124Z
- 近 30 天下载量：2322（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：75（近 12 个月 75 个）

## 中文简介

使用服务账户认证读取和写入 Google 工作表的 Flink 插件

## 安装

```sh
npm install @flink-app/google-sheets-plugin
```

也可以使用：`pnpm add @flink-app/google-sheets-plugin`、`yarn add @flink-app/google-sheets-plugin`、`bun add @flink-app/google-sheets-plugin`

## README

# @flink-app/google-sheets-plugin (英语)

使用服务账户认证从 Flink 应用读取并写入 Google 工作表 .

## 先决条件

1.  在 [谷歌云控台](https://console.cloud.google.com/) ——IAM与管理 ——服务账户
2.  启用 **谷歌工作表 API** 用于您的项目
3.  与服务账户电子邮件共享电子表格( 编辑器访问)

## 注册插件

```typescript
import { googleSheetsPlugin, GoogleSheetsPluginCtx } from "@flink-app/google-sheets-plugin";

interface AppCtx extends FlinkContext<GoogleSheetsPluginCtx> {
    repos: {};
}

new FlinkApp<AppCtx>({
    plugins: [
        googleSheetsPlugin({
            spreadsheetId: process.env.GOOGLE_SPREADSHEET_ID!,
            credentials: {
                clientEmail: process.env.GOOGLE_SERVICE_ACCOUNT_EMAIL!,
                privateKey: process.env.GOOGLE_PRIVATE_KEY!,
            },
        }),
    ],
});
```

私人密钥接受原始的 PEM 字符串( 有 `\n`)或基础64-编码服务账户JSON blob.

## 使用量

通过 `ctx.plugins.googleSheets`启用 `.sheet("Title")` 或者说 `.sheetByIndex(n)` 将操作范围改为特定工作表.

```typescript
// Read all rows
const rows = await ctx.plugins.googleSheets.sheet("Tasks").getRows();
// [{ rowIndex: 0, data: { title: "Fix bug", status: "pending" } }, ...]

// Append a row
const row = await ctx.plugins.googleSheets.sheet("Tasks").appendRow({
    title: "New task",
    status: "pending",
});

// Update a row
await ctx.plugins.googleSheets.sheet("Tasks").updateRow(row.rowIndex, {
    status: "completed",
});

// Delete a row
await ctx.plugins.googleSheets.sheet("Tasks").deleteRow(row.rowIndex);

// Spreadsheet metadata
const info = await ctx.plugins.googleSheets.getInfo();
// { title, spreadsheetId, sheetCount }
```

行为普通对象 : `{ rowIndex: number, data: Record<string, string> }` 其中键为列头.

## 动态全权证书

启动时从数据库装入证书, 而不是 env vars :

```typescript
googleSheetsPlugin({
    loadCredentials: async (ctx) => {
        const config = await ctx.repos.configRepo.getOne({ key: "google" });
        return {
            credentials: {
                clientEmail: config.serviceAccountEmail,
                privateKey: config.privateKey,
            },
            spreadsheetId: config.spreadsheetId,
        };
    },
});
```

## AI 工具

通用软件 `GoogleSheetsTool` 包含用于Flink代理。 它支持 `getRows`, (中文(简体) ), `appendRow`, (中文(简体) ), `updateRow`, (中文(简体) ), `deleteRow`,以及 `getInfo` 操作.

```typescript
import GoogleSheetsTool, { Tool } from "@flink-app/google-sheets-plugin/tools/GoogleSheetsTool";

class MyAgent extends FlinkAgent<AppCtx> {
    tools = [{ ...Tool, handler: GoogleSheetsTool }];
}
```

## 常见问题

### @flink-app/google-sheets-plugin 是什么？

使用服务账户认证读取和写入 Google 工作表的 Flink 插件

### 如何安装 @flink-app/google-sheets-plugin？

在项目目录运行 npm install @flink-app/google-sheets-plugin，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@flink-app/flink（\>=2\.0\.0-alpha\.134）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @flink-app/google-sheets-plugin 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @flink-app/google-sheets-plugin 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @flink-app/google-sheets-plugin 可以商用吗？

@flink-app/google-sheets-plugin 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @flink-app/google-sheets-plugin 的下载量有多少？

根据 npm 官方下载统计，@flink-app/google-sheets-plugin 在 2026/10/15 – 2026/11/13 这 30 天内被下载 2,322 次，日均约 77 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @flink-app/google-sheets-plugin 还在维护吗？

最新版本 2\.0\.0-alpha\.134 发布于 2026/11/07（8 天前）；至今共发布 75 个版本，其中过去 12 个月发布了 75 个；首次发布于 2026/03/03。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

