excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Map的golang概念、用法及如何把EXCEL各个工作表的单元格值按多维组合输出到Map

Map一词有的资料上翻译为”映射”,有的翻译为”字典”,都是将键映射到值的一种表达方式,是一堆键值对的未排序集合。 在一些语言中,如果要使用map,事先要引用相应的库。而在Go中,使用map不需要引入任何库,并且用起来也更加方便。 Map的零值为nil.nil映射既没有键,也不能添加键。 make函数会返回给定类型的映射,并将其初始化备用。 m := make(map[string]int) Map与数组的区别:数组是索引对应数组元素,而字典是键对应值。 要从map中查找一个特定的键,可以通过下面的代码来实现: value, ok :=myMap["1234"] if ok { // 找到了 // 处理找到的value } 判断是否成功找到特定的键,不需要检查取到的值是否为nil,只需查看第二个返回值ok,这让表意清晰很多。配合:=操作符,让你的代码没有多余成分,看起来非常清晰易懂。 好了,下面我们看如何把EXCEL输出到多维Map 上代码: 1 package main 2 3 import ( 4 "fmt" 5 "github.com/tealeg/xlsx" 6 //"log" 7 ) 8 9 func main() { 10 f, err := xlsx.OpenFile("./book1.xlsx") 11 if err != nil { 12 fmt.Println(err) 13 return 14 } 15 //每次创建一个一维 map 都要make() 一次,不然就会 panic. 16 //多维 map 每加一层都要多make() 好几次. 17 file_result := make(map[int]map[int]map[int]string) 18 for a, sheet := range f.Sheets { 19 sheet_result :=make(map[int]map[int]string) 20 for b, row := range sheet.Rows { 21 row_result :=make(map[int]string) 22 for c, cell := range row.Cells{ 23 row_result[c] = cell.Value 24 fmt.Println(cell.Value) 25 } 26 27 sheet_result[b] = row_result 28 29 } 30 31 file_result[a] = sheet_result 32 33 } 34 fmt.Println(file_result) 35 for v, value := range file_result { 36 for v2, value2 := range value { 37 for v3, value3 := range value2{ 38 fmt.Println("第", v+1, "个工作表,", "第", v2+1, "行", "第", v3+1, "列数值为:", value3, " ") 39 } 40 } 41 } 42 43} 截图: 讲解:每次创建一个维度 map 都要 make() 一次,不然就会 panic,多维 map 每加一层都要多 make() 一次.这一点要特别注意,上述代码在range单元格时要输出内容;然后输出Map的键对值;最后再输出详细的信息。好,看输出: 非常的漂亮。 分享成果,随喜正能量。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接