You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
1.5 KiB

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))
}