Build
Connect & operate
Design & teams
Start hereScope a build in one callBring a spec, a wireframe, or a paragraph. You leave with an architecture, a timeline, and a number.Book a scoping call
AI software
LLM & data systems
Vibe coding
Ready to ship?Put AI where the work isAgents, RAG, and private LLMs wired into the systems your team already uses — not a chatbot bolted to a homepage.Discuss an AI project
Domain firstWe learn your workflow before we model itRegulated, operational, or high-volume — the constraints belong in the schema, not in a training doc.Talk about your domain
Plan smarterEstimate before you commitCost ranges, scope templates, and the questions we ask in discovery — free, no form.Open the cost calculator
Real conversationsTalk with a technical leadNo SDR, no discovery gauntlet. The person on the call is the one who scopes the build.Book a call
MCP Servers · qax-os

excelize

Excelize is a pure Go library for reading, writing, and manipulating Microsoft Excel files (XLSX, XLSM, XLAM, and template formats). It provides a straightforward API for creating spreadsheets, inserting data, charts, and images, with streaming support for large datasets.

Source: GitHub — github.com/qax-os/excelize
20.7k
GitHub stars
1.9k
Forks
Go
Primary language
BSD-3-Clause
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryqax-os/excelize
Ownerqax-os
Primary languageGo
LicenseBSD-3-Clause — OSI-approved
Stars20.7k
Forks1.9k
Open issues126
Latest releasev2.11.0 (2026-07-06)
Last updated2026-07-06
Sourcehttps://github.com/qax-os/excelize

What excelize is

Written in pure Go with no external dependencies, Excelize handles OOXML (Office Open XML per ECMA-376) file formats. It supports cell operations, formula handling, chart generation, picture insertion, and streaming APIs for memory-efficient processing of large worksheets. Requires Go 1.25.0 or later.

Quickstart

Get the excelize source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/qax-os/excelize.gitcd excelize# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Programmatic Report Generation

Generate Excel reports dynamically from application data, including formatted tables, charts, and images without requiring Excel installed.

Bulk Data Import/Export

Read large Excel files efficiently using streaming APIs or write bulk data with minimal memory overhead, suitable for ETL pipelines and data migrations.

Go-based Business Intelligence Tooling

Build Go microservices and CLI tools that integrate Excel as a data format, eliminating COM dependencies (Windows-only) and external service calls.

Implementation considerations

  • Ensure Go version 1.25.0+ is available in your build and runtime environment.
  • Use `defer f.Close()` consistently to release file handles and prevent resource leaks, especially in long-running services.
  • For large files (>100K rows), leverage streaming APIs (`GetRows` with limits or custom iterators) rather than loading entire sheets into memory.
  • Test chart and image insertion with your target Excel versions (Excel 2007+) to verify compatibility with downstream users.
  • Validate formula strings before insertion; the library does not perform formula syntax validation at write time.

When to avoid it — and what to weigh

  • Pixel-Perfect Visual Control Required — If you need fine-grained control over font rendering, exact spacing, or complex conditional formatting beyond basic styling, manual XML editing may be necessary.
  • VBA Macro Preservation at Scale — While the library can read/write XLSM files, comprehensive VBA macro manipulation and testing is not clearly documented; use with caution if macro integrity is critical.
  • Non-Go Environment — Excelize is Go-only; integrating into non-Go applications requires wrapping via gRPC, REST API, or system calls, adding deployment complexity.
  • Real-time Collaborative Editing — Not designed for live multi-user editing scenarios; best suited for batch operations and offline file manipulation.

License & commercial use

Excelize is licensed under BSD-3-Clause (New or Revised License), a permissive OSI-approved license.

BSD-3-Clause is a permissive license that permits commercial use, modification, and distribution with appropriate attribution and liability disclaimers. No commercial restrictions or fees apply. Always review the license text to ensure compliance with your internal policy.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationStrong
License clarityClear
Deployment complexityLow
DEV.co fitStrong
Assessment confidenceHigh
Security considerations

No security audit details provided in public data. When processing untrusted Excel files, be aware of: (1) potential XML bomb attacks in OOXML (zip-based); (2) formula injection if user-supplied data is inserted as formulas; (3) resource exhaustion from maliciously crafted large files. Validate input, limit file sizes, and do not execute formulas from untrusted sources. No published CVEs found in the data provided; requires independent security review.

Alternatives to consider

Apache POI (Java)

Industry-standard for Excel manipulation; required if you need JVM-based deployment, mature ecosystem, and extensive third-party integrations. Heavier footprint and slower startup.

OpenPyXL (Python)

Pythonic equivalent for data science and automation workflows; preferred if you use Python and need tight NumPy/Pandas integration. Not suitable for pure Go backends.

xlsx (Node.js)

Lightweight JavaScript library for browser and Node.js; choose if you need client-side Excel generation or a serverless Node environment. Limited formula and chart support compared to Excelize.

Software development agency

Build on excelize with DEV.co software developers

Excelize offers a production-ready, dependency-free solution for Excel file handling. Contact our team to architect a scalable data automation or reporting system.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

excelize FAQ

Does Excelize require Microsoft Excel to be installed?
No. Excelize is a pure Go library that reads and writes OOXML (Office Open XML) format directly. It does not depend on Excel, Office, or any native Windows libraries, making it platform-agnostic.
Can Excelize handle large Excel files without loading the entire file into memory?
Yes, via streaming APIs. For reading, use `GetRows` with filtering; for writing, use streaming writer methods. This is essential for processing files with millions of rows.
Is VBA macro support reliable?
Excelize can read and write XLSM files (macro-enabled), but comprehensive VBA manipulation and validation is not clearly documented. Macros may or may not be preserved depending on complexity; test thoroughly before using in production.
What versions of Excel are supported?
Excelize targets Excel 2007 and later (.xlsx, .xlsm, .xlam, .xltm, .xltx). Older .xls (Excel 97-2003) format is not supported.

Software developers & web developers for hire

excelize rarely ships on its own. As a software development company, DEV.co handles the surrounding work — data modeling, service integration, deployment, and the mcp servers glue code that production actually requires.

Ready to integrate Excel into your Go application?

Excelize offers a production-ready, dependency-free solution for Excel file handling. Contact our team to architect a scalable data automation or reporting system.