A pure Go library for reading and writing Microsoft Excel™ spreadsheets (XLAM/XLSM/XLSX/XLTM/XLTX).
Excelize is a pure Go library for programmatically creating, reading, and editing Microsoft Excel files. It provides a robust and high-performance alternative to manual spreadsheet manipulation, enabling developers to automate complex data reporting and document generation workflows directly from Go applications.
Go developers who need to automate Excel file generation, manipulation, or data extraction, such as those building backend services for data reporting, financial applications, or document automation tools.
Developers choose Excelize for its comprehensive feature set, high compatibility with Microsoft Excel formats, and streaming API for handling large datasets efficiently, making it a go-to solution for Excel automation in the Go ecosystem.
Go language library for reading and writing Microsoft Excel™ (XLAM / XLSM / XLSX / XLTM / XLTX) spreadsheets
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports all modern Excel formats including XLSX, XLSM, XLAM, XLTX, and XLTM, as stated in the README, ensuring high compatibility with Excel 2007 and later.
Provides a streaming API for reading and writing worksheets with massive datasets, preventing memory overflow when processing large files, which is highlighted in the key features.
Enables creation and embedding of various chart types like 3D clustered columns directly into spreadsheets, as demonstrated in the example code with detailed configuration options.
Allows adding images (PNG, JPEG, GIF) to cells with options for scaling, positioning, and print control, enhancing visual reports, as shown in the AddPicture example.
Does not support the older .XLS format from Excel 97-2003, which can be a limitation for projects dealing with historical data or legacy systems.
Even basic operations like setting cell values require multiple function calls and error handling, making it less intuitive for quick tasks compared to higher-level wrappers in other ecosystems.
The comprehensive feature set leads to a large API surface area, requiring significant time to master for complex automation, and documentation can be fragmented across go.dev and xuri.me.