Flowthru.Extensions.Google.Sheets
0.30.0
dotnet add package Flowthru.Extensions.Google.Sheets --version 0.30.0
NuGet\Install-Package Flowthru.Extensions.Google.Sheets -Version 0.30.0
<PackageReference Include="Flowthru.Extensions.Google.Sheets" Version="0.30.0" />
<PackageVersion Include="Flowthru.Extensions.Google.Sheets" Version="0.30.0" />
<PackageReference Include="Flowthru.Extensions.Google.Sheets" />
paket add Flowthru.Extensions.Google.Sheets --version 0.30.0
#r "nuget: Flowthru.Extensions.Google.Sheets, 0.30.0"
#:package Flowthru.Extensions.Google.Sheets@0.30.0
#addin nuget:?package=Flowthru.Extensions.Google.Sheets&version=0.30.0
#tool nuget:?package=Flowthru.Extensions.Google.Sheets&version=0.30.0
Flowthru.Extensions.Google.Sheets
Read and write Google Sheets as Flowthru Catalog Items. A spreadsheet tab becomes a typed
Item addressed by (spreadsheetId, tableName) — a stable native-table name, not a fragile cell
range — so a Flow reads rows from one tab and writes derived rows to another the same way it
reads and writes a CSV. The factory matches a table's columns to your schema's properties by
name and coerces each cell to the declared type on read; an output table is created on first
write if it is absent, then atomically replaced each run.
Mental model
A Flowthru Catalog declares typed Items; this package supplies Items backed by a Google
spreadsheet instead of a file. Everything reaches the spreadsheet through a swappable
ISheetsGateway, so the Catalog and the Flow never name a credential or a network call. Bring
your spreadsheet mental model — a tab is a table, the header row names the columns, one record
per row — and Flowthru handles the typed mapping to your schema. The extension owns no
credentials: you supply an authenticated SheetsService, or hand it the shipped file-backed
gateway to develop fully offline.
Install
dotnet add package Flowthru.Extensions.Google.Sheets
Register a gateway and a Catalog whose Items route through it. The offline file-backed gateway
is the swap point — replace it with AddGoogleSheets(sheetsService) over an authenticated
client for production, with no change to the Catalog or Flow:
var gateway = new JsonFileSheetsGateway(workingPath); // offline; swap for a live SheetsService
services.AddFlowthru(flowthru =>
{
flowthru.AddGoogleSheets(gateway); // retry-on-429 wrapped by default
flowthru.RegisterCatalog(_ => new Catalog(gateway, spreadsheetId));
flowthru
.RegisterFlow<Catalog>("Sales", SalesFlow.Create)
.WithDescription("Totals raw sales by day and writes the result back to the spreadsheet");
});
Declare a Sheets-backed Item in your Catalog:
public IItem<IEnumerable<RawSaleSchema>> RawSales =>
CreateItem(() => ItemFactory.Enumerable.GoogleSheets<RawSaleSchema>(
label: "RawSales",
spreadsheetId: _spreadsheetId,
tableName: "RawSales",
gateway: _sheets));
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Flowthru.Core (>= 0.30.0)
- Google.Apis.Auth (>= 1.74.0)
- Google.Apis.Sheets.v4 (>= 1.74.0.4061)
- Microsoft.Extensions.Configuration (>= 10.0.4)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.4)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.4)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.4)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.4)
- Microsoft.Extensions.Options (>= 10.0.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.30.0 | 112 | 7/20/2026 |
| 0.30.0-preview.128 | 54 | 7/20/2026 |
| 0.29.0-preview.123 | 57 | 7/10/2026 |
| 0.28.1-preview.122 | 61 | 7/9/2026 |
| 0.28.0 | 144 | 7/7/2026 |
| 0.28.0-preview.121 | 58 | 7/7/2026 |
| 0.27.1 | 137 | 7/2/2026 |
| 0.27.1-preview.120 | 64 | 7/2/2026 |
| 0.27.0 | 114 | 7/1/2026 |
| 0.27.0-preview.119 | 51 | 7/1/2026 |
| 0.26.0-preview.112 | 58 | 6/5/2026 |
| 0.25.0 | 238 | 6/2/2026 |
| 0.25.0-preview.110 | 63 | 6/2/2026 |
| 0.24.0-preview.108 | 65 | 6/2/2026 |