Go知识总结

1.GO读写EXCEL

1.1 配置包

go get "github.com/360EntSecGroup-Skylar/excelize"

1.2 读取文件

将xlsx文件中属性对应的值转为map的数组。

func readExcel() {
    file := "./file/file.xlsx"
    f, err := excelize.OpenFile(file)
    if err != nil {
        fmt.Println(err)
        return
    }
    rows := f.GetRows("result")

    res := make([]map[string]string, 0)
    for i := 1; i < 26; i++ {
        d := make(map[string]string)
        for j := 0; j < len(rows[i]); j++ {
            d[rows[0][j]] = rows[i][j]
        }
        res = append(res, d)
    }

    r := make(map[string]interface{}, 0)
    data := res[0]["raw"]
    json.Unmarshal([]byte(data), &r)
    fmt.Println(res)

    fmt.Println(reflect.TypeOf(r["cvt_ts"]))
}

1.3 写入xlsx文件

1.数据:map数组
2.方法:先获取所有的键,并写入第一行,数据:依次根据键写入后面的列。

// 写入excel, data为数据, attrs为表头, file为文件名
func writeExcel(data []map[string]string, file string) {
    f := excelize.NewFile()
    index := f.NewSheet("Sheet1")
    f.SetActiveSheet(index)
    f.SetCellValue("Sheet1", "A1", "ID")

    attrs := make([]string, 0)
    for k, _ := range data[0] {
        attrs = append(attrs, k)
    }

    for i, v := range attrs {
        //设置表头, A1, B1, C1...
        columnLabel := string(rune('A' + i))
        f.SetCellValue("Sheet1", fmt.Sprintf("%s%d", columnLabel, 1), v)
    }

    for i, v := range data {
        for i1, k := range attrs {
            columnLabel := string(rune('A' + i1))
            f.SetCellValue("Sheet1", fmt.Sprintf("%s%d", columnLabel, i+2), v[k])
        }
    }
    if err := f.SaveAs(file); err != nil {
        fmt.Println(err)
    }
}

2.go常用方法

2.1 字符串

// 字符串
str := "hello World"
//获取长度
var l int
l = len(str)
//字符串分割
strs := strings.Split(str, " ")  //strs是[]string

//strings.ToLower:转为小写
l_str =strings.ToLower(str)

//strings.Contain, string包含

//strings.HasPrefix(s, prefix string) bool 和 strings.HasSuffix(s, suffix string) bool,分别检查字符串s是否以prefix为前缀或以suffix为后缀。

2.2 正则表达式

str := "abc 12a bc45 4ccf"
regexp := regexp.MustCompile(`\d+`)
res := regexp.FindString(str)           //查找第一个匹配
resAll := regexp.FindAllString(str, -1) //查找所有匹配

new_str := regexp.ReplaceAllString(str, "98") //替换成98

fmt.Println(res,resAll,new_str)

2.3

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇