You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Golang中生成带指定下拉选项列的CSV/Excel文件

在Golang中生成带下拉选项的Excel文件

CSV是纯文本格式,不支持单元格下拉这类富格式功能,因此要实现带指定下拉选项的需求,只能通过生成Excel文件来完成。

以下是实现代码,借助excelize库为指定列添加下拉选项:

package main

import (
	"fmt"
	"os"

	"github.com/xuri/excelize/v2"
)

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

	// 创建工作表
	index, err := f.NewSheet("Sheet1")
	if err != nil {
		fmt.Println(err)
		return
	}

	// 写入表头
	f.SetCellValue("Sheet1", "A1", "ID")
	f.SetCellValue("Sheet1", "B1", "Airline")
	f.SetCellValue("Sheet1", "C1", "Flight No")

	// 定义下拉选项列表
	airlineOptions := []string{"AA", "DL", "UA", "BA", "LH"}
	// 拼接成Excel数据验证要求的格式
	formula := "\"" + airlineOptions[0]
	for _, opt := range airlineOptions[1:] {
		formula += "," + opt
	}
	formula += "\""

	// 为B列(Airline列)设置下拉验证,应用范围为B2到B100
	err = f.SetSheetDataValidation("Sheet1", &excelize.DataValidation{
		Type:       "list",
		Formula1:   formula,
		AllowBlank: true,
		Sqref:      "B2:B100",
	})
	if err != nil {
		fmt.Println(err)
		return
	}

	// 设置默认活动工作表
	f.SetActiveSheet(index)
	// 保存生成的Excel文件
	if err := f.SaveAs("flight_data.xlsx"); err != nil {
		fmt.Println(err)
	}
}

实现效果

生成的Excel文件中,Airline列会显示指定的下拉选项,效果如下:
Airline列下拉选项示例

核心说明

  • 需先通过go get github.com/xuri/excelize/v2安装excelize库
  • 通过SetSheetDataValidation方法添加数据验证,将Type设为list即可实现下拉列表效果
  • Sqref参数用于指定规则应用的单元格范围,可根据实际需求调整覆盖的行数
  • 下拉选项需要拼接成带双引号的字符串格式,作为Formula1的值传入

内容的提问来源于stack exchange,提问作者Sharath BJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 12:13:24