用于读写 Excel (XLSX) 文件的 Go 语言库,提供丰富的 API 和文档。

所在地:
美国
语言:
en
收录时间:
2026-08-26
ExcelizeExcelize

核心定位

Excelize 是使用 Go 语言编写、用于读写 Microsoft Excel (XLSX) 格式文件的开源基础库。它不依赖外部软件或服务,可直接在服务器端完成 Excel 文件的生成、解析与样式处理,适用于报表导出、数据交换、批量处理等场景。

主要能力

文件读写与兼容

  • 支持创建、打开、保存 XLSX 文件
  • 兼容 Excel 2007 及之后版本生成的文件格式
  • 可处理工作表、单元格、行列、合并区域等基本结构

数据操作

  • 单元格文本、数值、公式、超链接写入
  • 批量写入二维切片数据
  • 读取已有工作表中的数据到内存结构

样式与格式

  • 字体、颜色、边框、填充、对齐方式设置
  • 列宽、行高、冻结窗格、自动筛选
  • 条件格式、数据验证、批注

高级功能

  • 图表创建(柱状图、折线图、饼图等)
  • 图片插入与定位
  • 数据透视表
  • 公式计算引擎(支持部分内置函数)

典型使用场景

场景 说明
报表导出 服务端生成格式化 Excel 报表,供用户下载
数据采集 解析用户上传的 Excel 文件,提取结构化数据
批量转换 将数据库或 JSON 数据批量转为 Excel 文件
模板填充 基于预设模板写入动态数据,保留原有样式

技术特点

  • 纯 Go 实现:无 CGO 依赖,交叉编译方便,部署简单
  • API 设计直接:以工作簿、工作表、单元格为操作单位,上手路径短
  • 文档完整:官方提供详细的 API 文档与使用示例
  • 活跃维护:持续更新以跟进 Go 版本与 Excel 格式演进

快速上手示例

package main

import (
    "fmt"
    "github.com/xuri/excelize/v2"
)

func main() {
    f := excelize.NewFile()
    defer func() {
        if err := f.Close(); err != nil {
            fmt.Println(err)
        }
    }()

    // 写入数据
    f.SetCellValue("Sheet1", "A1", "姓名")
    f.SetCellValue("Sheet1", "B1", "分数")
    f.SetCellValue("Sheet1", "A2", "张三")
    f.SetCellValue("Sheet1", "B2", 92)

    // 保存文件
    if err := f.SaveAs("成绩表.xlsx"); err != nil {
        fmt.Println(err)
    }
}

获取与集成

通过 Go Modules 引入:

go get github.com/xuri/excelize/v2

当前主版本为 v2,API 保持稳定。官方仓库提供完整的使用文档、函数索引和常见问题解答,适合在选型阶段快速评估可行性。

适用边界

Excelize 聚焦于 XLSX 格式,不支持旧版 XLS 二进制格式。对于超大文件的流式读写,官方提供 StreamWriterStreamReader 接口以降低内存占用,但部分高级功能(如图表与数据透视表)在流式模式下可能受限。选型前建议根据实际文件规模与功能需求进行验证。

相关导航