Excelize

Go language library for reading and writing Microsoft Excel™ (XLAM / XLSM / XLSX / XLTM / XLTX) spreadsheets

Last verified:

Visit Excelize

What is Excelize?

Excelize is a pure Go library that provides a comprehensive set of functions to read from and write to Excel spreadsheet files including XLAM, XLSM, XLSX, XLTM, and XLTX formats. It supports reading and writing spreadsheet documents generated by Microsoft Excel 2007 and later, conforming to the Office Open XML (OOXML) standard. The library enables developers to programmatically create new Excel documents, read existing ones, modify templates, insert images, charts, tables, and implement cross-platform operations.

Key features include high compatibility with complex Excel components, a streaming API for handling worksheets with huge amounts of data, formula calculation support, pivot table creation, chart generation (including 3D clustered columns, box and whisker stock charts), picture insertion with scaling options, conditional formatting, data validation, comments, sparklines, slicers, and VBA project support. The library also provides encryption/decryption capabilities, rich text formatting, merged cells, hyperlinks, header/footer images, and worksheet protection.

Excelize is designed for Go developers who need to work with Excel files in their applications, including backend services, data processing pipelines, report generation systems, and automation tools. It requires Go version 1.24.0 or later. The library is used by over 8,500 projects on GitHub and has over 20,500 stars, making it the go-to XLSX library for Go developers working with spreadsheet documents.

The library is completely free and open source under the BSD 3-Clause License. Commercial support is available including prioritized issue resolution on GitHub and technical advisory services on an hourly-basis contract for implementation assistance. The project maintains active community presence across multiple platforms including Slack, Discord, Telegram, Microsoft Teams, and GitHub.

Excelize pricing

Pricing model: Freemium

Excelize is completely free and open source under the BSD 3-Clause License with no paid tiers. Anyone can use, modify, and distribute the library without cost. The source code is available on GitHub at github.com/xuri/excelize. Commercial support is available on a paid basis including prioritized GitHub issue resolution and technical advisory services on an hourly-basis contract for implementation help. Individual users can also support development through donations via Open Collective, Patreon, Ko-fi, Liberapay, IssueHunt, or PayPal.

Excelize pros

  • Pure Go implementation with no external dependencies
  • Supports all Excel 2007+ file formats (XLAM/XLSM/XLSX/XLTM/XLTX)
  • Streaming API for handling huge datasets efficiently
  • High compatibility with complex Excel components
  • Built-in formula calculation engine supporting array formulas
  • Comprehensive chart support including 3D and stock charts
  • Picture insertion with scaling, offset, and print support
  • Pivot table creation and management
  • Conditional formatting and data validation support
  • Rich text formatting in cells
  • Encryption and decryption for protected workbooks
  • Cross-platform compatibility
  • Active development with 1,392+ commits and regular releases
  • Extensive documentation with multilingual support (12 languages)
  • BSD 3-Clause permissive open source license
  • Well-maintained with 312 contributors and 20.5k GitHub stars
  • Support for VBA project addition to workbooks
  • Slicer and sparkline creation capabilities
  • Custom properties get/set functions
  • High-performance I/O with optimized memory usage

Excelize cons

  • Requires Go 1.24.0 or later (recent version requirement)
  • Formula computation coverage is incomplete
  • No native GUI interface - code-only interaction
  • Learning curve for developers unfamiliar with OOXML
  • Some advanced Excel features may not be fully supported
  • Memory intensive for very large files without streaming
  • Python port (excelize-py) requires separate installation
  • Commercial support requires contacting via email for pricing

Frequently asked questions about Excelize

What file formats does Excelize support?

Excelize supports XLAM, XLSM, XLSX, XLTM, and XLTX file formats. It can read and write spreadsheet documents generated by Microsoft Excel 2007 and later that conform to the Office Open XML (OOXML) standard.

What Go version is required to use Excelize?

Excelize requires Go version 1.24.0 or later. This requirement was updated in version 2.10.0 due to the upgrade of the dependency package golang.org/x/crypto.

How do I install Excelize?

Install using the command 'go get github.com/xuri/excelize'. If using Go Modules, use 'go get github.com/xuri/excelize/v2'. The library can then be imported with 'github.com/xuri/excelize/v2'.

Can Excelize handle large datasets efficiently?

Yes, Excelize provides a streaming API specifically designed for generating or reading data from worksheets with huge amounts of data. This allows for high-performance I/O when working with large spreadsheets.

Does Excelize support chart creation?

Yes, Excelize supports comprehensive chart generation including 3D clustered column charts, box and whisker stock charts (High-Low-Close, Open-High-Low-Close, Volume-High-Low-Close, Volume-Open-High-Low-Close), and many other chart types. Charts can be created based on worksheet data or without any data.

Can I insert pictures into Excel files with Excelize?

Yes, Excelize supports inserting pictures (GIF, JPEG, PNG) into spreadsheets with options for scaling (ScaleX, ScaleY), offset positioning (OffsetX, OffsetY), print support, aspect ratio locking, and print object settings.

Is Excelize free to use commercially?

Yes, Excelize is completely free and open source under the BSD 3-Clause License, which permits commercial use. There are no paid tiers or licensing fees required for any use case.

Does Excelize support formula calculation?

Yes, Excelize includes a formula calculation engine that supports array formulas and various formula functions including BAHTTEXT. The CalcCellValue function can compute formula results.

What community support is available for Excelize?

Excelize has active communities on Facebook Group, Google Group, Stack Overflow, Slack Channel, Gitter, Telegram, Discord, Microsoft Teams, Skype, Line, DingTalk (ID: 30047129), QQ (ID: 1302058237), WeChat (ID: hixuri), WeCom Group, and Inflow Group (ID: 4375928).

Are there ports of Excelize for other languages?

Yes, there are official ports including excelize-py for Python (requires Python 3.9+), excelize-wasm for WebAssembly/JavaScript, and ExcelizeCs NuGet package for C#. These are separate packages that port the Go Excelize library functionality.

Categories

Use cases

Browse all AI tools on NeedAnAI