OfficeIMO.Excel.GoogleSheets
3.4.5
Prefix Reserved
dotnet add package OfficeIMO.Excel.GoogleSheets --version 3.4.5
NuGet\Install-Package OfficeIMO.Excel.GoogleSheets -Version 3.4.5
<PackageReference Include="OfficeIMO.Excel.GoogleSheets" Version="3.4.5" />
<PackageVersion Include="OfficeIMO.Excel.GoogleSheets" Version="3.4.5" />
<PackageReference Include="OfficeIMO.Excel.GoogleSheets" />
paket add OfficeIMO.Excel.GoogleSheets --version 3.4.5
#r "nuget: OfficeIMO.Excel.GoogleSheets, 3.4.5"
#:package OfficeIMO.Excel.GoogleSheets@3.4.5
#addin nuget:?package=OfficeIMO.Excel.GoogleSheets&version=3.4.5
#tool nuget:?package=OfficeIMO.Excel.GoogleSheets&version=3.4.5
OfficeIMO.Excel.GoogleSheets - Excel and Google Sheets translation
OfficeIMO.Excel.GoogleSheets provides bidirectional Excel and Google Sheets translation with formula compatibility policy, sparse/chunked writes, native advanced objects, import, fidelity preflight, and format-specific diff planning.
Install
dotnet add package OfficeIMO.Excel.GoogleSheets
Quick start
using OfficeIMO.Excel;
using OfficeIMO.Excel.GoogleSheets;
using OfficeIMO.GoogleWorkspace;
using var workbook = ExcelDocument.Create("report.xlsx");
var sheet = workbook.AddWorksheet("Summary");
sheet.CellValue(1, 1, "Quarter");
sheet.CellValue(1, 2, "Revenue");
sheet.CellValue(2, 1, "Q1");
sheet.CellValue(2, 2, 125000);
var receipts = new List<GoogleWorkspaceOperationReceipt>();
var sessionOptions = new GoogleWorkspaceSessionOptions {
ExpectedAccount = "service-account@project.iam.gserviceaccount.com",
DefaultFolderId = "reports-folder-id",
OperationReceiptSink = receipts.Add,
};
sessionOptions.OperationPolicyProvider = context => new GoogleWorkspaceOperationPolicy(
sessionOptions.ExpectedAccount!, context.RequiredScopes, context.Target,
context.RevisionPreconditionKind switch {
GoogleWorkspaceRevisionPreconditionKind.ResourceAbsentCreate => GoogleWorkspaceOperationPolicy.ResourceAbsentForCreateRevision,
GoogleWorkspaceRevisionPreconditionKind.PayloadRevision => context.AdapterExpectedRevision!,
GoogleWorkspaceRevisionPreconditionKind.ResumableSessionState => context.AdapterExpectedRevision!,
GoogleWorkspaceRevisionPreconditionKind.Unavailable => GoogleWorkspaceOperationPolicy.ExplicitlyUnversionedRevision("API exposes no conditional revision"),
_ => "\"observed-google-etag\"",
}, context.MaxRetryCount, context.MaxRetryElapsedTime, context.RateLimitPolicy,
GoogleWorkspaceDataLossDecision.RejectPotentialLoss);
var session = new GoogleWorkspaceSession(
GoogleServiceAccountCredentialSource.FromFile("service-account.json", sessionOptions),
sessionOptions);
var options = new GoogleSheetsSaveOptions {
Title = "Quarterly revenue"
};
var plan = workbook.BuildGoogleSheetsPlan(options);
var result = await workbook.ExportToGoogleSheetsAsync(session, options);
Console.WriteLine(result.SpreadsheetId);
Console.WriteLine(result.WebViewLink);
What it does
- Builds a translation plan before network export.
- Exports to a new Google Sheets spreadsheet or replaces an existing spreadsheet through
Location.ExistingFileId. - Imports through native Sheets resources or Drive-exported XLSX.
- Maps supported formulas, styles, filters, validation, protection, conditional formatting, charts, pivots, outlines, and native tables with explicit support boundaries.
Pivot export separates source grouping fields from the Values pseudo-field and
preserves horizontal or vertical measure placement. A source column named
Values remains a real grouping field. Layouts with Values before any source
grouping field are reported as unsupported, because the request model cannot
preserve that measure nesting.
- Uses values batching for value-heavy writes and structural batches for formats and objects.
- Supports range/field-mask native import, version evidence, and pre-apply diff planning.
- Uses session-level default Drive and folder placement.
- Preserves retry, warning, and failure detail through
TranslationReport. - Throws Google Workspace export exceptions that retain failure category and diagnostics.
Boundaries
- Workbook modeling belongs in
OfficeIMO.Excel. - Credentials, sessions, retry, Drive placement, and report primitives belong in
OfficeIMO.GoogleWorkspace. - This package owns Excel/Google Sheets mapping, import, safe replacement, and format-specific diff planning.
Targets and license
- Targets:
netstandard2.0,net8.0,net10.0, plusnet472on Windows. - License: MIT.
- Repository: EvotecIT/OfficeIMO
Dependency footprint
- External:
System.Text.Jsonplus platform HTTP/cryptography throughOfficeIMO.GoogleWorkspace; no Google client SDK. - OfficeIMO:
OfficeIMO.ExcelandOfficeIMO.GoogleWorkspaceown the workbook model, session, translation plan, and reports.
See the complete OfficeIMO package map for related formats and conversion paths.
Generated capability summary
This table is generated from the package-neutral OfficeIMO operation catalog. The detailed source contracts remain authoritative for feature-level behavior and limitations.
| Operation | Supported | Partial | Preserved | Rejected | Unsupported | Not applicable |
|---|---|---|---|---|---|---|
| Convert | 2 | 0 | 0 | 0 | 0 | 0 |
The complete rows for OfficeIMO.Excel.GoogleSheets are published in the generated operation contract.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7.2
- OfficeIMO.Core (>= 3.4.5)
- OfficeIMO.Excel (>= 3.4.5)
- OfficeIMO.GoogleWorkspace (>= 3.4.5)
- OfficeIMO.GoogleWorkspace.Drive (>= 3.4.5)
- System.Text.Json (>= 10.0.7 && < 11.0.0)
-
.NETStandard 2.0
- OfficeIMO.Core (>= 3.4.5)
- OfficeIMO.Excel (>= 3.4.5)
- OfficeIMO.GoogleWorkspace (>= 3.4.5)
- OfficeIMO.GoogleWorkspace.Drive (>= 3.4.5)
- System.Text.Json (>= 10.0.7 && < 11.0.0)
-
net10.0
- OfficeIMO.Core (>= 3.4.5)
- OfficeIMO.Excel (>= 3.4.5)
- OfficeIMO.GoogleWorkspace (>= 3.4.5)
- OfficeIMO.GoogleWorkspace.Drive (>= 3.4.5)
-
net8.0
- OfficeIMO.Core (>= 3.4.5)
- OfficeIMO.Excel (>= 3.4.5)
- OfficeIMO.GoogleWorkspace (>= 3.4.5)
- OfficeIMO.GoogleWorkspace.Drive (>= 3.4.5)
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 |
|---|---|---|
| 3.4.5 | 0 | 10/10/2026 |
| 3.4.4 | 250 | 9/27/2026 |
| 3.4.3 | 252 | 9/12/2026 |
| 3.4.2 | 174 | 9/9/2026 |
| 3.4.1 | 181 | 9/7/2026 |
| 3.4.0 | 119 | 9/6/2026 |
| 3.3.0 | 118 | 9/2/2026 |
| 3.2.7 | 116 | 8/29/2026 |
| 3.2.6 | 217 | 8/22/2026 |
| 3.2.5 | 200 | 8/21/2026 |
| 3.2.4 | 202 | 8/19/2026 |
| 3.2.3 | 122 | 8/17/2026 |
| 3.2.2 | 323 | 8/13/2026 |
| 3.2.1 | 254 | 8/11/2026 |
| 3.2.0 | 402 | 8/7/2026 |
| 3.1.1 | 149 | 8/7/2026 |
| 3.1.0 | 125 | 8/6/2026 |
| 3.0.3 | 160 | 7/27/2026 |
| 3.0.2 | 124 | 7/26/2026 |
| 3.0.1 | 463 | 7/26/2026 |