explaingit

qax-os/excelize

Analysis updated 2026-06-21

20,553GoAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

Excelize is a Go library for creating, reading, and modifying Excel spreadsheet files programmatically, with support for charts, images, multiple sheets, and a streaming API for large datasets.

Mindmap

mindmap
  root((repo))
    What it does
      Read Excel files
      Write Excel files
      Add charts
      Insert images
    Supported Formats
      XLSX
      XLSM
      XLTX and XLTM
    Key Features
      Streaming API
      Chart generation
      Multi-sheet support
    Audience
      Go developers
      Backend engineers
      Data engineers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Generate Excel reports from a Go web service and send them to users as downloadable files.

USE CASE 2

Read and process data from Excel files uploaded by users in a Go application.

USE CASE 3

Build a Go tool that produces Excel spreadsheets with embedded charts from database query results.

USE CASE 4

Stream-write large datasets to an Excel file without loading all rows into memory at once.

What is it built with?

Go

How does it compare?

qax-os/excelizeantonmedv/fxcontainerd/containerd
Stars20,55320,44820,674
LanguageGoGoGo
Setup difficultyeasyeasyhard
Complexity2/52/55/5
Audiencedeveloperdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Requires Go 1.25.0 or later, install with go get github.com/xuri/excelize/v2.

BSD 3-Clause, use freely for any purpose including commercial, as long as you keep the copyright notice and do not use the project name for endorsement.

In plain English

Excelize is a Go library for reading and writing Microsoft Excel spreadsheet files in the XLAM, XLSM, XLSX, XLTM, and XLTX formats. It supports files generated by Microsoft Excel 2007 and later, complies with the ECMA-376 Office Open XML standard, and requires Go version 1.25.0 or later. The library is BSD 3-Clause licensed. Core capabilities include creating and saving spreadsheets, reading cell values, working with multiple sheets, adding charts (with support for types such as 3D clustered column charts), inserting pictures with scaling and positioning options, and streaming API support for working with large datasets. Charts can be built from worksheet data or generated independently. Images in GIF, JPEG, and PNG formats can be inserted with options for scaling, offset, aspect ratio locking, and print settings. The library is installable via go get as github.com/xuri/excelize/v2. Full API documentation is available at go.dev and at xuri.me/excelize.

Copy-paste prompts

Prompt 1
I want to use Excelize in Go to create an Excel file with three sheets, add headers, fill rows from a database query, and save it. Show me the complete code.
Prompt 2
How do I use Excelize to read all cell values from the first sheet of an existing Excel file into a Go slice of structs?
Prompt 3
I need to add a bar chart to an Excel sheet using Excelize with data from columns A and B. Show me the chart creation code.
Prompt 4
My Go program needs to stream-write 100,000 rows to an Excel file without running out of memory. How do I use Excelize's streaming API?

Frequently asked questions

What is excelize?

Excelize is a Go library for creating, reading, and modifying Excel spreadsheet files programmatically, with support for charts, images, multiple sheets, and a streaming API for large datasets.

What language is excelize written in?

Mainly Go. The stack also includes Go.

What license does excelize use?

BSD 3-Clause, use freely for any purpose including commercial, as long as you keep the copyright notice and do not use the project name for endorsement.

How hard is excelize to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is excelize for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub qax-os on gitmyhub

Verify against the repo before relying on details.