unidoc/unioffice

Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 17 minutes ago
Added to GitGenius on September 14th, 2026
Created on August 29th, 2017
Open Issues & Pull Requests: 8 (+0)
GitHub issues: Enabled
Number of forks: 508
Total Stargazers: 4,938 (+0)
Total Subscribers: 81 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 20.9 days
Mean response time: 263.0 days
90th percentile: 894.1 days
Tracked items: 40

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 1
New in 7 days: 0
Closed in 7 days: 2
Avg open age: 510 days
Stale 30+ days: 1
Stale 90+ days: 1

Recent activity

Opened in 7 days: 0
Closed in 7 days: 2
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • feature (10)
  • document (4)
  • spreadsheet (4)
  • enhancement (3)
  • add-schema (2)
  • backlog (1)
  • eval (1)
  • excel-formula (1)

Detailed Description

unioffice is a pure Go library for creating and processing Office Open XML documents in Word, Excel, and PowerPoint formats.

The library addresses the need for native Go support when working with .docx, .xlsx, and .pptx files without external dependencies. It implements the ECMA-376 standard and provides both read and write capabilities across all three Office document types. For Word documents, it supports text formatting, images, tables, and conversion to PDF. For Excel spreadsheets, it offers cell formatting including conditional formatting, cell validation with dropdown controls, formula evaluation with over 100 supported functions, embedded images, and all chart types. PowerPoint support includes creation from templates, textboxes, and shapes.

The tool suits Go projects that need to generate or manipulate Office documents programmatically without relying on external services or the Office applications themselves. It performs well for spreadsheet operations, creating 30,000 rows with 100 columns each in under four seconds and reading such files in approximately nine seconds. The primary trade-off is binary size, as the library bundles generated structs and serialization code for all three document formats. The project requires a commercial license key to operate, available through a free tier metered API.

Development activity shows consistent maintenance with regular updates to the codebase. The project maintains comprehensive example repositories demonstrating common use cases across all three document types. Bug fixes and feature additions are addressed through pull requests and issue tracking. The library continues to expand formula support and improve compatibility with the Office Open XML specification.