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.
Key facts
Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.
| Field | Value |
|---|---|
| Repository | qax-os/excelize |
| Owner | qax-os |
| Primary language | Go |
| License | BSD-3-Clause — OSI-approved |
| Stars | 20.7k |
| Forks | 1.9k |
| Open issues | 126 |
| Latest release | v2.11.0 (2026-07-06) |
| Last updated | 2026-07-06 |
| Source | https://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.
Get the excelize source
Clone the repository and explore it locally.
git clone https://github.com/qax-os/excelize.gitcd excelize# follow the project's README for install & configurationNeed it deployed, integrated, or customized instead? DEV.co ships production installs.
Best use cases
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.
| Signal | Assessment |
|---|---|
| Maintenance | Active |
| Documentation | Strong |
| License clarity | Clear |
| Deployment complexity | Low |
| DEV.co fit | Strong |
| Assessment confidence | High |
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.
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.coRelated open-source tools
Surfaced by semantic similarity across the DEV.co open-source index.
Related on DEV.co
Explore the category and the services that help you build with it.
excelize FAQ
Does Excelize require Microsoft Excel to be installed?
Can Excelize handle large Excel files without loading the entire file into memory?
Is VBA macro support reliable?
What versions of Excel are supported?
Software developers & web developers for hire
DEV.co is a software development agency delivering custom software development services to companies building on open source. Our software developers and web developers design, integrate, and ship production systems — spanning web development, APIs, AI, data, and cloud. If excelize is part of your mcp servers roadmap, our team can implement, customize, migrate, and maintain it.
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.