Merge branch 'develop'

This commit is contained in:
kercylan98 2023-07-18 12:02:22 +08:00
commit a0085c5732
3 changed files with 172 additions and 12 deletions

View File

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

View File

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

View File

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