日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

go-excel文档

發布時間:2024/3/13 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 go-excel文档 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

go-excel

Excel數據讀寫的簡易封裝

參考方案:《使用 Golang 創建和讀取 Excel 文件(字節跳動技術團隊)》

https://juejin.cn/post/7117578224854368263

安裝

go get -u github.com/melf-xyzh/go-excel

生成導入模板

生成一個默認的Excel導入模板

// 創建一個excelConfig(每個Excel文件需要一個) exTemp := extemplate.ExcelConfig{}

使用自定義配置生成Excel導入版本

exTemp2 := extemplate.ExcelConfig{SheetName: "車輛導入模板", // 工作表名稱FileName: "車輛導入模板.xlsx", // 導出后的文件名DefaultColWidth: 40, // 默認列寬DefaultRowHeight: 300, // 默認行高(無效)SpecialColWidth: map[string]float64{ // 特殊列寬"B": 10,},SpecialRowHeight: map[int]float64{ // 特殊行高1: 50,},Style: map[string]exstyle.Style{ // 自定義單元格格式"A1,F3": exstyle.NewExStyle(exconst.DefaultFontFamily, exconst.DefaultFontSize, exconst.DefaultHorizontalAlign, exconst.DefaultVerticalAlign),"A1,F1": exstyle.NewExStyle("黑體", 50, "center", "center"),},MergeCell: map[string]string{ // 需要合并的單元格"A1": "D3",}, }

生成文件對象

// 獲取Excel導入模板 file, err := exTemp.GetTemplate("信息導入模板", []string{"第1列", "第2列", "第3列", "第4列", "第5列", "第6列"}) if err != nil {panic(err) }

通過結構體生成導入模板

// 定義結構體 type User struct {Id string `json:"id" ex:"column:ID;width:10;required;"`Name string `json:"name" ex:"column:姓名;width:30;required;"`NickName string `json:"nickName" ex:"column:昵稱;width:20;required;"`Phone string `json:"phone" ex:"column:手機號;width:15;required;"`Age int `json:"age" ex:"column:年齡;width:10;required;"`Sex string `json:"sex" ex:"column:性別;width:10;required;select:男、女"`School // 允許存在匿名字段 }type School struct {SchoolName string `ex:"column:學校;width:30;required;"`SchoolAddress string `ex:"column:學校地址;width:50;required;"` }// 創建一個excelConfig(每個Excel文件需要一個) exTemp3 := extemplate.ExcelConfig{SheetName: "車輛導入模板", // 工作表名稱FileName: "車輛導入模板" + exconst.DefaultExcelFileName + ".xlsx", // 導出后的文件名 }user := User{Id: "001",Name: "張三",NickName: "別人家的孩子",Phone: "123456789",Age: 30,Sex: "男", }// 獲取Excel導入模板 file, err := exTemp3.GetTemplateByStruct("信息導入模板", user) if err != nil {panic(err) }

生成階梯模板

// 獲取Excel導入模板 _, err := exTemp.GetLadderTemplate("乘法表", []string{"1", "2", "3", "4", "5","6", "7", "8", "9"}) if err != nil {panic(err) }

保存Excel文件

// 保存Excel文件 err = exTemp.ExportFile("fs") if err != nil {panic(err) }

讀取導入數據

通過結構體讀入數據

user := User{} // 通過結構體讀取數據,并進行校驗 // rows, err := extemplate.LoadExcelByStruct("./", "book1.xlsx", user, 2) rows, err := extemplate.LoadExcelByStruct("./", "book1.xls", user, 2) if err != nil {panic(err) } for _, row := range rows {fmt.Println(row) }

常規方式讀取數據

// rows, err = extemplate.LoadExcel("./", "book1.xls", 8) rows, err = extemplate.LoadExcel("./", "book1.xlsx", 8) if err != nil {panic(err) }

讀取階梯模板

rows, err := extemplate.LoadLadderExcel("./","乘法表.xlsx",10,1,1) if err != nil {panic(err) } for _, row := range rows {fmt.Println(row) }

導出數據

待開發

exTag

標簽名說明
-忽略該字段
ex:“-”
column指定導出Excel時的列名
ex:“column:姓名;”
width指定導出Excel時的列寬
ex:“width:30;”
required必填
ex:“required;”
select單選
ex:“select:男、女;”
multiSelect多選
ex:“multiSelect:A1、A2、A3、B1、B2、C1、C2、C3、C4、C5、C6、D、E、F、M、N、P;”
unique唯一
ex:“unique;”
len導入Excel時的數據長度校驗
ex:“len:2-5”(2-5位)
ex:“len:3”(固定為3位)
re正則校驗
ex:“re:1{1}[A-Z]{1}[A-Z0-9]{4,5}[A-Z0-9掛學警港澳]{1}$”
>數值下限校驗
ex:“>:0”
>=數值下限校驗
ex:“>=:0”
<數值上限校驗
ex:“<:100”
<=數值上限校驗
ex:“<=:100”

  • 京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領A-Z ??

  • 總結

    以上是生活随笔為你收集整理的go-excel文档的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。