当前位置: 首页 > news >正文

网站开发 安全 承诺书国外网站购物

网站开发 安全 承诺书,国外网站购物,网站底部菜单,什么做网站赚钱该版本完全兼容最新版 excelize 库 (v2.7),实现了只有表头的 Excel 模板,并在指定列添加了下拉框功能。生成的 Excel 文件在打开时,指定列的单元格会显示下拉选择箭头。代码如下:package mainimport ("fmt""log&qu…

该版本完全兼容最新版 excelize 库 (v2.7+),实现了只有表头的 Excel 模板,并在指定列添加了下拉框功能。生成的 Excel 文件在打开时,指定列的单元格会显示下拉选择箭头。

代码如下:

package mainimport ("fmt""log""github.com/xuri/excelize/v2"
)// Excel模板配置
type ExcelTemplateConfig struct {SheetName    string         // 工作表名称Headers      []HeaderConfig // 表头配置DropdownCols []DropdownCol  // 下拉框列配置
}type HeaderConfig struct {Title  string // 列标题Column string // 列标识(如A, B, C)
}type DropdownCol struct {Column   string   // 需要下拉框的列标识(如B, C)Options  []string // 下拉选项列表StartRow int      // 下拉框起始行(从1开始)EndRow   int      // 下拉框结束行
}func CreateExcelTemplate(config ExcelTemplateConfig) error {f := excelize.NewFile()defer f.Close()// 设置工作表名称sheet := config.SheetNameif sheet == "" {sheet = "Sheet1"}// 创建新工作表index, err := f.NewSheet(sheet)if err != nil {return fmt.Errorf("创建工作表失败: %w", err)}f.SetActiveSheet(index)// 写入表头for _, header := range config.Headers {cell := fmt.Sprintf("%s1", header.Column)if err := f.SetCellValue(sheet, cell, header.Title); err != nil {return fmt.Errorf("写入表头失败: %w", err)}// 设置表头样式(可选)style, _ := f.NewStyle(&excelize.Style{Font:      &excelize.Font{Bold: true, Color: "FFFFFF"},Fill:      excelize.Fill{Type: "pattern", Color: []string{"4F81BD"}, Pattern: 1},Alignment: &excelize.Alignment{Horizontal: "center"},})f.SetCellStyle(sheet, cell, cell, style)}// 设置列宽(可选)for _, header := range config.Headers {colWidth := 15.0 // 默认列宽if len(header.Title) > 15 {colWidth = float64(len(header.Title)) + 2}if err := f.SetColWidth(sheet, header.Column, header.Column, colWidth); err != nil {log.Printf("设置列宽失败: %v", err)}}// 添加下拉框for _, dropdown := range config.DropdownCols {if dropdown.EndRow < dropdown.StartRow {// 默认设置1000行下拉框dropdown.EndRow = dropdown.StartRow + 999}// 构建范围字符串 (如 "B2:B1000")dvRange := fmt.Sprintf("%s%d:%s%d",dropdown.Column,dropdown.StartRow,dropdown.Column,dropdown.EndRow,)// 创建数据验证对象dv := excelize.NewDataValidation(true) // 允许空值dv.SetSqref(dvRange)                   // 设置应用范围// 设置下拉列表选项if err := dv.SetDropList(dropdown.Options); err != nil {return fmt.Errorf("设置下拉选项失败: %w", err)}// 添加数据验证到工作表if err := f.AddDataValidation(sheet, dv); err != nil {return fmt.Errorf("添加下拉框失败: %w", err)}// 添加注释提示(使用新版API)commentCell := fmt.Sprintf("%s1", dropdown.Column)if err := f.AddComment(sheet, excelize.Comment{Cell:   commentCell,Author: "系统提示",Paragraph: []excelize.RichTextRun{{Text: "请从下拉列表中选择:\n"},{Text: joinOptions(dropdown.Options)},},}); err != nil {log.Printf("添加注释失败: %v", err)}}// 保存文件if err := f.SaveAs("template.xlsx"); err != nil {return fmt.Errorf("保存文件失败: %w", err)}return nil
}// 将选项列表转换为逗号分隔的字符串(用于注释)
func joinOptions(options []string) string {result := ""for i, opt := range options {if i > 0 {result += ", "}result += opt}return result
}func main() {// 配置Excel模板config := ExcelTemplateConfig{SheetName: "Sheet1",Headers: []HeaderConfig{{Title: "产品ID", Column: "A"},{Title: "产品名称", Column: "B"},{Title: "产品状态", Column: "C"},{Title: "产品类别", Column: "D"},},DropdownCols: []DropdownCol{{Column:   "C", // 状态列Options:  []string{"在售", "下架", "预售", "停产", "测试"},StartRow: 2,    // 从第2行开始EndRow:   1000, // 到第1000行},{Column:   "D", // 类别列Options:  []string{"电子产品", "家居用品", "服装", "食品", "图书", "ceshi"},StartRow: 2,EndRow:   1000,},},}// 生成Excel模板文件if err := CreateExcelTemplate(config); err != nil {log.Fatalf("生成模板失败: %v", err)}fmt.Println("Excel模板已成功生成: template.xlsx")fmt.Println("包含以下下拉框列:")for i, dropdown := range config.DropdownCols {fmt.Printf("%d. 列 %s: %v\n", i+1, dropdown.Column, dropdown.Options)}
}

功能说明:

  1. 纯表头模板

    • 只生成表头行(第1行)

    • 没有数据行

  2. 下拉框功能

    • 在指定列添加数据验证下拉框

    • 下拉框从第2行开始到指定结束行

    • 支持多个下拉框列

  3. 增强功能

    • 表头美化:加粗、居中、蓝底白字

    • 列宽自适应:根据标题长度自动调整列宽

    • 提示注释:在列标题添加下拉选项提示

    • 空值允许:允许单元格为空

使用说明:

  1. 安装依赖

    bash

    go get github.com/xuri/excelize/v2

  2. 运行程序

    bash

    go run main.go

  3. 输出文件

    • 生成 template.xlsx 文件

    • 打开后可以看到表头和下拉框设置

自定义选项:

  1. 修改下拉选项

    go

    Options: []string{"选项1", "选项2", "选项3"},

  2. 调整下拉范围

    go

    StartRow: 2,   // 从第2行开始
    EndRow:   500, // 到第500行

  3. 添加更多下拉列

    go

    DropdownCols: []DropdownCol{{Column: "E", Options: []string{"是", "否"}, StartRow: 2, EndRow: 1000},// 添加更多列...
    },

该版本完全兼容最新版 excelize 库 (v2.7+),实现了只有表头的 Excel 模板,并在指定列添加了下拉框功能。生成的 Excel 文件在打开时,指定列的单元格会显示下拉选择箭头。

扩展:

自定义列宽:

定义config:

// 配置Excel模板config := ExcelTemplateConfig{SheetName: "Sheet1",Headers: []HeaderConfig{{Title: "产品ID", Column: "A", Width: 20},  // 增加了列宽的配置{Title: "产品名称", Column: "B", Width: 40},  // 增加了列宽的配置{Title: "产品状态", Column: "C"},{Title: "产品类别", Column: "D"},},DropdownCols: []DropdownCol{{Column:   "C", // 状态列Options:  []string{"在售", "下架", "预售", "停产", "测试"},StartRow: 2,      // 从第2行开始EndRow:   100000, // 到第100000行},{Column:   "D", // 类别列Options:  []string{"电子产品", "家居用品", "服装", "食品", "图书", "ceshi"},StartRow: 2,EndRow:   100000,},},}

设置列宽:

// 设置列宽(可选)for _, header := range config.Headers {colWidth := 15.0 // 默认列宽if header.Width > 15 {colWidth = float64(header.Width)}if err := f.SetColWidth(sheet, header.Column, header.Column, colWidth); err != nil {log.Printf("设置列宽失败: %v", err)}}

修改这两处,即可按照用户设置的列宽来确定模板的列宽了。

http://www.dtcms.com/a/404992.html

相关文章:

  • 济南网站seo顾问建设文化网站的目的和意义
  • 嘉兴网站关键词优化网站开发经理岗位职责
  • 福州集团网站建设那个免费做微信订阅号的网站
  • 如何做话费卡回收网站德州做网站优化
  • 如何查询网站是否备案影楼公共网站
  • 昆山市住房和建设局网站网页传奇合击
  • 头条网站收录提交入口wordpress横排菜单
  • 企业为什么要建站点呢wordpress有没有linux
  • 宁波网站推广专业服务区校合作网站建设方案
  • 网络工程师证书考取条件长沙seo优化哪家好
  • 开通微网站杭州设计师网站
  • 备案网站应用服务青岛做公司网站
  • 藤虎广州网站建设检测设备技术支持东莞网站建设
  • 服饰的网站建设品牌营销策略案例
  • 免费 成品模板网站怎么提高网站建设水平
  • 你做我评网站会自动查论文相似度吗沈阳专业网站建设企业
  • windows搭建网站开发大连旅游网站建设大概多钱
  • 阿里巴巴国际站运营模式凡科代理建站登录
  • 赣州网站建设信息百度app下载官方免费下载最新版
  • 如何一个空间做多个网站上海关键词优化报价
  • 花都商城网站建设怎么将自己房子投入网站做民宿
  • 凡科网站内容怎么做效果好龙岗个性化网站建设价格低
  • 公司设计网站推荐温州网站设计制作课程
  • 建设网站用动态ip还是静态ip盐城网站建设流程
  • 辽宁建设厅网站什么时候换的贵州icp网站备案中心
  • h5网站开发是什么意思西地那非片的功效与作用
  • 免费网站建设招商深圳建筑行业招聘网
  • 龙岩做网站新乡做网站推广
  • 移动端的网站建设网贷审核网站怎么做
  • 可以打开的wap网站Wordpress怎么連結mysql