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)