golang xuri/excelize 导出 Excel 时,不指定列标号

更新日期: 2025-02-25 阅读次数: 111 字数: 478 分类: golang

今天在开发的系统,需要导出大赛参赛作品的所有打分结果。

此前的做法是,指定 Excel 的 Cell 标识,然后写入指定单元格。但是这种做法非常不容易维护,例如,要新增一列,插入到邮箱那列的前面,那么插入后,就需要对应的修改后面的每一列的编号,非常麻烦。

    values := map[string]string{
        "A1": "年份",
        "B1": "参赛队名",
        "C1": "省份",
        "D1": "所属大学",
        "E1": "参赛组别",
        "F1": "联系人姓名",
        "G1": "联系人手机号",
        "H1": "邮箱",
        "I1": "联系地址",
        "J1": "邮政编码",
        "K1": "创建时间",
    }

我需要一种新的写法,通过每行 slice 的方式写入,不指定每列的字母。

SetSheetRow

    headers := []interface{}{
        "年份", "阶段", "评分组名", "总分", "参赛队伍名称", "参赛组别", "选题类型",
    }
    err := xlsx.SetSheetRow("Sheet1", "A1", &headers)

SetShettRow 这个很方便,数字也不需要转换为字符串,直接用就行。

但是需要注意第三个参数需要用指针类型,否则会报错 parameter invalid 。。。

AI 太猛

本来想详细记录一下的,算了 AI 已经很 NB 了,完全没有记录到必要。只要记住提示词就好了。

// 设置表头

// 填充数据

更复杂一点,输入提示词,“表头字段是动态生成的,根据。。。”

有了 Github Copilot 基本上没有必要去做 Vim Snippet 这些代码片段了,AI 自动给出的代码已经很厉害了。😮‍💨

微信关注我哦 👍

大象工具微信公众号

我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式