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