golang如何快速生成excel表格

xjie_jack · · 3928 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

# golang如何快速生成excel表格 操作excel表格,将数据保存为excel表格,便于数据的交换,展示和下载。在我们平常的工作中是一项基本需求。 我比较喜欢的库是360开源的excelize,目前最新版本为v2.4.0,这个库非常的方便和好用,但对于新手来说,掌握也需要摸索一下,本人最近为了将list表格转换成excel表格,特意研究了一下: 要求如下: 1. 将list表格转换成excel表格; 2. 给每一列设定一个宽度,并设定列的标题,居中对齐; 3. 给表格加上边框线; 4. 给表格加上一个title; 5. 给表格设定一个名字; 6. 固定标题行,免得数据多时滚动看不到标题行。 做完之后,我想这种需求以后应该会经常用,何不封装一下,变成一个小工具,以后随时调用,岂不方便很多,最后我将这些功能封装到一个函数中: ``` go func ListToExcel(list interface{}, title, sheetName string) *excelize.File { } ``` 以后使用的时候如何调用呢?请看以下示例: ``` go package main import "github.com/xjieinfo/xjgo/xjcore/xjexcel" //通过excelize将列表转换成excel文件 func main() { list := make([]User, 0) user1 := User{ Name: "张三", Age: 18, Address: "北京东三环", } user2 := User{ Name: "李四", Age: 21, Address: "上海人民路", } user3 := User{ Name: "王五", Age: 22, Address: "长沙开福区", } list = append(list, user1, user2, user3) f := xjexcel.ListToExcel(list, "员工信息表", "员工表") f.SaveAs("/员工表.xls") } type User struct { Name string `excel:"column:B;desc:姓名;width:30"` Age int `excel:"column:C;desc:年龄;width:10"` Address string `excel:"column:D;desc:地址;width:50"` } ``` 通过struct的tag将每一列的位置,名称,宽度进行设置,如果不设置A列,则A列为序号列,自动生成。 具体的项目源码,请访问以下网址:(https://github.com/xjieinfo/xjgo) 如果此项目对你有所帮助或启发,请给个star支持一下,谢谢!

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3928 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传