Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. unioffice

unioffice

NOASSERTIONGov2.12.0

A pure Go library for creating, editing, and processing Microsoft Office Open XML documents (DOCX, XLSX, PPTX).

Visit WebsiteGitHubGitHub
4.9k stars505 forks0 contributors

What is unioffice?

UniOffice is a pure Go library for creating, editing, and processing Microsoft Office Open XML documents, including Word (.docx), Excel (.xlsx), and PowerPoint (.pptx) files. It solves the problem of programmatically generating and manipulating Office documents in Go applications without relying on external tools or services.

Target Audience

Go developers who need to generate reports, spreadsheets, or presentations programmatically, such as those building document automation tools, data export features, or enterprise applications.

Value Proposition

Developers choose UniOffice for its high performance, comprehensive feature set covering all major Office formats, and the ability to work directly with raw XML when needed, providing both convenience and flexibility.

Overview

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

Use Cases

Best For

  • Generating Word documents with complex formatting and tables
  • Creating Excel spreadsheets with formulas and charts
  • Building PowerPoint presentations from templates
  • Automating report generation in Go applications
  • Editing existing Office documents programmatically
  • Converting Office documents to other formats (e.g., Word to PDF)

Not Ideal For

  • Projects requiring permissive open-source licensing (e.g., MIT or Apache 2.0) for distribution
  • Applications with strict binary size constraints, such as embedded systems or serverless functions
  • Teams needing to work with older Office formats (e.g., .doc, .xls) or non-Office standards like ODF

Pros & Cons

Pros

High Performance

Benchmarks show fast creation and saving, with a 30k-row spreadsheet generated in under 4 seconds and saving taking only 89 nanoseconds.

Comprehensive Format Support

Handles DOCX, XLSX, and PPTX with full features like formatting, images, tables, and charts, as listed in the status section.

Excel Formula Evaluation

Supports over 100 Excel functions and retrieves cell values as formatted by Excel, useful for accurate spreadsheet automation.

Template and Raw Flexibility

Allows document generation from existing templates and provides raw XML access for advanced customizations not covered by the high-level API.

Cons

Commercial Licensing

Requires a paid UniDoc EULA license key for operation, adding cost and complexity compared to fully open-source alternatives.

Large Binary Size

The library binary is 33MB due to generated structs, which can bloat deployments and increase memory usage.

Incomplete High-Level API

Some features, like setting document background colors, require manual XML manipulation, indicating gaps in the convenience layer.

Open Source Alternative To

unioffice is an open-source alternative to the following products:

Microsoft Office
Microsoft Office

Microsoft Office is a suite of productivity applications including Word, Excel, PowerPoint, and Outlook, used for document creation, data analysis, presentations, and email.

LibreOffice (for programmatic generation)
LibreOffice (for programmatic generation)

LibreOffice (for programmatic generation) refers to tools and libraries that enable automated creation and manipulation of LibreOffice documents through scripting and APIs.

Frequently Asked Questions

Quick Stats

Stars4,897
Forks505
Contributors0
Open Issues11
Last commit25 days ago
CreatedSince 2017

Tags

#spreadsheet#docx#office-documents#file-processing#go-library#document-generation#pptx#openxml#openoffice#golang#word#ooxml#go#xlsx#presentation

Built With

G
Go

Links & Resources

Website

Included in

Go169.1k
Auto-fetched 6 hours ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub