|
@@ -9,6 +9,7 @@ import (
|
|
|
"fmt"
|
|
|
"os"
|
|
|
"reflect"
|
|
|
+ "regexp"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
"time"
|
|
@@ -824,13 +825,12 @@ func getExcelFontConf(cellInfo LuckySheetDataValue) xlsx.Font {
|
|
|
}
|
|
|
familyName = tmpFamilyName
|
|
|
}
|
|
|
-
|
|
|
return xlsx.Font{
|
|
|
Size: fontSize,
|
|
|
Name: familyName,
|
|
|
//Family: v2.FontFamily,
|
|
|
//Charset: 0,
|
|
|
- Color: strings.TrimPrefix(cellInfo.FontColor, "#"),
|
|
|
+ Color: strings.TrimPrefix(getColor(cellInfo.FontColor), "#"),
|
|
|
Bold: isBold,
|
|
|
Italic: isItalic,
|
|
|
Underline: isUnderline,
|
|
@@ -1429,22 +1429,22 @@ func getExcelizeAlignmentConf(cellInfo LuckySheetDataValue) *excelize.Alignment
|
|
|
|
|
|
// getColor 获取hex颜色
|
|
|
func getColor(bgStr string) string {
|
|
|
- if strings.Contains(bgStr, "(") {
|
|
|
- arr := strings.Split(bgStr, ",")
|
|
|
- if len(arr) != 3 {
|
|
|
+ isRgb := strings.HasPrefix(bgStr, "rgb")
|
|
|
+ re := regexp.MustCompile(`\(([^)]+)\)`)
|
|
|
+ matches := re.FindStringSubmatch(bgStr)
|
|
|
+ if len(matches) != 2 {
|
|
|
+ return bgStr
|
|
|
+ }
|
|
|
+ if isRgb {
|
|
|
+ arr := strings.Split(matches[1], ",")
|
|
|
+ if len(arr) < 3 {
|
|
|
return bgStr
|
|
|
}
|
|
|
-
|
|
|
- // 第一位
|
|
|
- tmpFirstArr := strings.Split(arr[0], "(")
|
|
|
- arr[0] = tmpFirstArr[len(tmpFirstArr)-1]
|
|
|
-
|
|
|
- // 最后一位
|
|
|
- tmpLastArr := strings.Split(arr[2], ")")
|
|
|
- arr[2] = tmpLastArr[0]
|
|
|
-
|
|
|
rgbArr := make([]int64, 0)
|
|
|
- for _, v := range arr {
|
|
|
+ for i, v := range arr {
|
|
|
+ if i >= 3 {
|
|
|
+ continue
|
|
|
+ }
|
|
|
tmpInt, err := strconv.Atoi(utils.TrimStr(v))
|
|
|
if err != nil {
|
|
|
return bgStr
|