package main import ( "dsTools/Utils/CommonUtil" "encoding/json" "fmt" "github.com/atotto/clipboard" "sort" "strconv" "strings" ) func main() { // 复制内容到剪切板 //clipboard.WriteAll(`复制这段内容到剪切板`) // 读取剪切板中的内容到字符串 content, err := clipboard.ReadAll() if err != nil { panic(err) } var _title = make(map[string]string) var dataList []map[string]string arr := strings.Split(content, "\n") for i := 0; i < len(arr); i++ { str := strings.Replace(arr[i], "\t", " ", -1) str = strings.Replace(str, "\r", "", -1) str = CommonUtil.DeleteExtraSpace(str) b := strings.Split(str, " ") _map := make(map[string]string) for j := 0; j < len(b); j++ { //表头 if i == 0 { _title["s"+strconv.Itoa(j+1)] = b[j] } else { //内容 _map["s"+strconv.Itoa(j+1)] = b[j] } } if len(_map)>2{ dataList = append(dataList, _map) } } //生成表头 var names []string for name := range _title { names = append(names, name) } sort.Strings(names) var titleList []map[string]string for _, name := range names { _map := make(map[string]string) _map["field"] = name _map["title"] = _title[name] _map["align"] = "center" titleList = append(titleList, _map) } //输出标题 jsonStr, err := json.Marshal(titleList) if err != nil { fmt.Println("MapToJsonDemo err: ", err) } fmt.Println("\r\n" + string(jsonStr)) //生成内容 jsonStr, err = json.Marshal(dataList) if err != nil { fmt.Println("MapToJsonDemo err: ", err) } fmt.Println("\r\n" + string(jsonStr)) }