Merge branch 'develop'
This commit is contained in:
commit
a0085c5732
|
@ -104,12 +104,16 @@ func (slf *Xlsx) GetData() [][]pce.DataInfo {
|
|||
}
|
||||
}
|
||||
|
||||
for i, field := range slf.GetFields() {
|
||||
var isIndex = i-1 < slf.GetIndexCount()
|
||||
for i, field := range fields {
|
||||
var isIndex = i < slf.GetIndexCount()
|
||||
|
||||
var value string
|
||||
if valueCell := slf.get(field.Index, y); valueCell != nil {
|
||||
value = valueCell.String()
|
||||
if isIndex && len(strings.TrimSpace(value)) == 0 {
|
||||
stop = true
|
||||
break
|
||||
}
|
||||
} else if isIndex {
|
||||
stop = true
|
||||
break
|
||||
|
@ -118,12 +122,10 @@ func (slf *Xlsx) GetData() [][]pce.DataInfo {
|
|||
if valueCell == nil {
|
||||
break
|
||||
}
|
||||
if len(fields) > i-1 {
|
||||
line = append(line, pce.DataInfo{
|
||||
DataField: field,
|
||||
Value: value,
|
||||
})
|
||||
}
|
||||
line = append(line, pce.DataInfo{
|
||||
DataField: field,
|
||||
Value: value,
|
||||
})
|
||||
}
|
||||
if len(line) > 0 {
|
||||
data = append(data, line)
|
||||
|
|
|
@ -27,6 +27,7 @@ func (slf *Golang) Render(templates ...*pce.TmplStruct) (string, error) {
|
|||
import (
|
||||
jsonIter "github.com/json-iterator/go"
|
||||
"github.com/kercylan98/minotaur/utils/log"
|
||||
"github.com/kercylan98/minotaur/utils/hash"
|
||||
"sync"
|
||||
)
|
||||
|
||||
|
@ -192,13 +193,22 @@ func (slf *Golang) Render(templates ...*pce.TmplStruct) (string, error) {
|
|||
|
||||
// GetConfigs 获取所有配置
|
||||
func GetConfigs() map[Sign]any {
|
||||
return configs
|
||||
mutex.Lock()
|
||||
defer mutex.Unlock()
|
||||
return hash.Copy(configs)
|
||||
}
|
||||
|
||||
// GetConfigSigns 获取所有配置的标识
|
||||
func GetConfigSigns() []Sign {
|
||||
return signs
|
||||
}
|
||||
|
||||
// Sync 同步操作配置
|
||||
func Sync(handle func(configs map[Sign]any)) {
|
||||
mutex.Lock()
|
||||
defer mutex.Unlock()
|
||||
handle(hash.Copy(configs))
|
||||
}
|
||||
`, slf)
|
||||
}
|
||||
|
||||
|
|
154
utils/str/str.go
154
utils/str/str.go
|
@ -19,11 +19,11 @@ var (
|
|||
// FirstUpper 首字母大写
|
||||
func FirstUpper(str string) string {
|
||||
var upperStr string
|
||||
vv := []rune(str) // 后文有介绍
|
||||
vv := []rune(str)
|
||||
for i := 0; i < len(vv); i++ {
|
||||
if i == 0 {
|
||||
if vv[i] >= 97 && vv[i] <= 122 { // 后文有介绍
|
||||
vv[i] -= 32 // string的码表相差32位
|
||||
if vv[i] >= 97 && vv[i] <= 122 {
|
||||
vv[i] -= 32
|
||||
upperStr += string(vv[i])
|
||||
} else {
|
||||
return str
|
||||
|
@ -34,3 +34,151 @@ func FirstUpper(str string) string {
|
|||
}
|
||||
return upperStr
|
||||
}
|
||||
|
||||
// FirstLower 首字母小写
|
||||
func FirstLower(str string) string {
|
||||
var lowerStr string
|
||||
vv := []rune(str)
|
||||
for i := 0; i < len(vv); i++ {
|
||||
if i == 0 {
|
||||
if vv[i] >= 65 && vv[i] <= 90 {
|
||||
vv[i] += 32
|
||||
lowerStr += string(vv[i])
|
||||
} else {
|
||||
return str
|
||||
}
|
||||
} else {
|
||||
lowerStr += string(vv[i])
|
||||
}
|
||||
}
|
||||
return lowerStr
|
||||
}
|
||||
|
||||
// FirstUpperBytes 首字母大写
|
||||
func FirstUpperBytes(str []byte) []byte {
|
||||
var upperStr []byte
|
||||
vv := []rune(string(str))
|
||||
for i := 0; i < len(vv); i++ {
|
||||
if i == 0 {
|
||||
if vv[i] >= 97 && vv[i] <= 122 {
|
||||
vv[i] -= 32
|
||||
upperStr = append(upperStr, string(vv[i])...)
|
||||
} else {
|
||||
return str
|
||||
}
|
||||
} else {
|
||||
upperStr = append(upperStr, string(vv[i])...)
|
||||
}
|
||||
}
|
||||
return upperStr
|
||||
}
|
||||
|
||||
// FirstLowerBytes 首字母小写
|
||||
func FirstLowerBytes(str []byte) []byte {
|
||||
var lowerStr []byte
|
||||
vv := []rune(string(str))
|
||||
for i := 0; i < len(vv); i++ {
|
||||
if i == 0 {
|
||||
if vv[i] >= 65 && vv[i] <= 90 {
|
||||
vv[i] += 32
|
||||
lowerStr = append(lowerStr, string(vv[i])...)
|
||||
} else {
|
||||
return str
|
||||
}
|
||||
} else {
|
||||
lowerStr = append(lowerStr, string(vv[i])...)
|
||||
}
|
||||
}
|
||||
return lowerStr
|
||||
}
|
||||
|
||||
// IsEmpty 判断字符串是否为空
|
||||
func IsEmpty(str string) bool {
|
||||
return len(str) == 0
|
||||
}
|
||||
|
||||
// IsEmptyBytes 判断字符串是否为空
|
||||
func IsEmptyBytes(str []byte) bool {
|
||||
return len(str) == 0
|
||||
}
|
||||
|
||||
// IsNotEmpty 判断字符串是否不为空
|
||||
func IsNotEmpty(str string) bool {
|
||||
return !IsEmpty(str)
|
||||
}
|
||||
|
||||
// IsNotEmptyBytes 判断字符串是否不为空
|
||||
func IsNotEmptyBytes(str []byte) bool {
|
||||
return !IsEmptyBytes(str)
|
||||
}
|
||||
|
||||
// SnakeString 蛇形字符串
|
||||
func SnakeString(str string) string {
|
||||
var snakeStr string
|
||||
vv := []rune(str)
|
||||
for i := 0; i < len(vv); i++ {
|
||||
if vv[i] >= 65 && vv[i] <= 90 {
|
||||
vv[i] += 32
|
||||
snakeStr += "_" + string(vv[i])
|
||||
} else {
|
||||
snakeStr += string(vv[i])
|
||||
}
|
||||
}
|
||||
return snakeStr
|
||||
}
|
||||
|
||||
// SnakeStringBytes 蛇形字符串
|
||||
func SnakeStringBytes(str []byte) []byte {
|
||||
var snakeStr []byte
|
||||
vv := []rune(string(str))
|
||||
for i := 0; i < len(vv); i++ {
|
||||
if vv[i] >= 65 && vv[i] <= 90 {
|
||||
vv[i] += 32
|
||||
snakeStr = append(snakeStr, '_')
|
||||
snakeStr = append(snakeStr, string(vv[i])...)
|
||||
} else {
|
||||
snakeStr = append(snakeStr, string(vv[i])...)
|
||||
}
|
||||
}
|
||||
return snakeStr
|
||||
}
|
||||
|
||||
// CamelString 驼峰字符串
|
||||
func CamelString(str string) string {
|
||||
var camelStr string
|
||||
vv := []rune(str)
|
||||
for i := 0; i < len(vv); i++ {
|
||||
if vv[i] == '_' {
|
||||
i++
|
||||
if vv[i] >= 97 && vv[i] <= 122 {
|
||||
vv[i] -= 32
|
||||
camelStr += string(vv[i])
|
||||
} else {
|
||||
return str
|
||||
}
|
||||
} else {
|
||||
camelStr += string(vv[i])
|
||||
}
|
||||
}
|
||||
return camelStr
|
||||
}
|
||||
|
||||
// CamelStringBytes 驼峰字符串
|
||||
func CamelStringBytes(str []byte) []byte {
|
||||
var camelStr []byte
|
||||
vv := []rune(string(str))
|
||||
for i := 0; i < len(vv); i++ {
|
||||
if vv[i] == '_' {
|
||||
i++
|
||||
if vv[i] >= 97 && vv[i] <= 122 {
|
||||
vv[i] -= 32
|
||||
camelStr = append(camelStr, string(vv[i])...)
|
||||
} else {
|
||||
return str
|
||||
}
|
||||
} else {
|
||||
camelStr = append(camelStr, string(vv[i])...)
|
||||
}
|
||||
}
|
||||
return camelStr
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue