qax-os excelize Go 语言 Excel 读写库,xlsx 文件流式处理 20k Star

qax-os/excelize 是 Go 语言读写 Microsoft Excel™ (xlsx) 文件的库,20k Star,BSD-3 协议。支持读写 .xlsx/.xlsm/.xltm/.xltx 格式,公式、图表、透视表、数据验证、

本资源包含什么

  • 完整 Go 源码:来自 GitHub qax-os/excelize master 分支(2026-08-14 最新),含 100+ *.go 文件(核心 lib.go 32 KB / cell.go 53 KB / styles.go 127 KB / sheet.go 75 KB / xmlWorksheet.go 59 KB 等)+ go.mod + go.sum

  • 核心模块excelize.go(库入口 22 KB)+ lib.go(核心 API 32 KB)+ stream.go(流式写入 26 KB)+ cell.go(单元格 53 KB)+ sheet.go(工作表 75 KB)+ styles.go(样式 127 KB)。

  • 公式引擎calc.go(643 KB!公式计算引擎,Excel 400+ 函数覆盖)+ calcchain.go(计算链)+ numfmt.go(数字格式 378 KB)+ date.go(日期)。

  • 图表 / 透视表chart.go(49 KB 图表)+ xmlChart.go(28 KB XML 图表)+ pivotTable.go(55 KB 透视表)。

  • 数据验证 / 条件格式datavalidation.go(19 KB)+ conditional_format.go

  • XML 序列化器:30+ 个 xml*.go 编解码器。

  • 其他模块:加密、绘图、切片器、迷你图、表格、形状、VML、工作簿、调整、合并、图片、列、行、文件等 13 个模块。

  • 官方文档README.md(8 KB)+ README_zh.md(8 KB 中文版)+ LICENSE(BSD-3)。

核心能力

  • xlsx 全格式读写.xlsx / .xlsm / .xltm / .xltx 全部支持。

  • 流式写入 (StreamWriter)stream.go 实现低内存大文件生成(百万行级别),适合报表导出。

  • 公式引擎calc.go 643 KB 内置 Excel 400+ 公式函数(SUM / VLOOKUP / INDEX / MATCH / IF / DATEDIF 等)。

  • 图表 + 透视表:支持 70+ Excel 图表类型 + 透视表 + 数据透视图。

  • 样式 + 条件格式:数字格式、字体、填充、边框、对齐、条件格式(CF rules)、迷你图、切片器。

  • 数据验证:下拉列表、范围检查、自定义公式。

  • 加密 / 解密crypt.go 支持工作簿密码加密(标准加密 + Agile Encryption)。

  • 跨平台:Linux / Windows / macOS / ARM 全部支持,无 cgo 依赖。

本资源包不含什么

  • 测试代码(已剔全部 *_test.go 文件,约 80+ 个测试文件,省 2 MB+)

  • 测试 fixtures(已剔 test/ 目录)

  • CI 配置(已剔 .github/

  • Logo / 演示图片(已剔 excelize.svg / logo.png

资源包大小

压缩后约 0.47 MB,解压后约 2.2 MB / 61 个文件

启动运行(Go 模块安装)

# 在你的 Go 项目里
go get github.com/xuri/excelize/v2

# 一个 hello world
cat > main.go << 'EOF'
package main

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

func main() {
  f := excelize.NewFile()
  defer f.Close()
  f.SetCellValue("Sheet1", "A1", "Hello Excelize!")
  f.SaveAs("hello.xlsx")
  fmt.Println("OK")
}
EOF

go mod init hello && go mod tidy && go run main.go

启动运行(流式写入百万行)

f := excelize.NewFile()
sw, _ := f.NewStreamWriter("Sheet1")
for i := 1; i < 1000000; i++ {
  sw.SetRow("A"+fmt.Sprint(i),
    []interface{}{i, "name-"+fmt.Sprint(i), rand.Float64()})
}
sw.Flush()
f.SaveAs("big.xlsx")

安装编译依赖

  • Go 1.16+go.mod 声明,推荐 1.21+)

  • 跨平台编译:Linux/Windows/macOS/ARM

  • 无其他第三方运行时依赖

典型使用场景

  • 报表导出:Go 后端动态生成 Excel 报表(订单 / 财务报表 / 数据分析)。

  • 百万行流式生成:StreamWriter + 低内存,可处理 1M+ 行数据导出。

  • Excel 模板填充:读取用户上传的模板,填充业务数据后输出。

  • Excel 解析 / 数据导入:读取用户上传的 xlsx,提取结构化数据入库。

适用人群

  • Go 后端工程师:需要给业务系统加 Excel 导出功能。

  • 数据团队:定时任务生成数据报表 / 导出大文件。

  • 替代 Python pandas + openpyxl 的 Go 团队:性能 + 内存优势明显。

  • 做技术选型:评估 excelize vs tealeg/xlsx vs xuri/Excelize Go。

质量承诺

本资源包内源码全部来自 qax-os/excelize 官方 GitHub 仓库(BSD-3 协议),master 分支,2026-08-14 最新版本,经本地解压验证:含 100+ Go 核心文件 + 公式引擎 + 完整 XML 序列化器。用户解压后 go get github.com/xuri/excelize/v2 即可在自己项目里使用,或直接 go build 跑测试。

版权声明

本站文字内容为原创编撰或者网络搜集整理,受著作权保护,禁止未经授权批量采集转载。

本站分享的各类源码、AI大模型、程序工具仅作技术科普部署教程使用,不直接存储原版版权文件。

所有第三方资源的知识产权、开源协议、商用授权规则均归原开发团队所有。

使用者下载、部署、二次开发必须严格遵守国家著作权相关法律法规,以及资源官方许可协议,如需商业运营,务必向版权方申请合法授权。

因用户私自商用、违规分发资源造成的法律纠纷与经济损失,全部由使用者自行承担,本站不承担连带责任。

转载请说明出处 内容投诉
素材市场 » qax-os excelize Go 语言 Excel 读写库,xlsx 文件流式处理 20k Star

发表评论

您需要后才能发表评论

一个令你着迷的主题!

点击下载 VIP购买