Golang使用Excelize获取xlsx文件中的文本颜色
Golang使用Excelize获取xlsx文件中的文本颜色 我使用Excelize(“github.com/360EntSecGroup-Skylar/excelize”)处理.xlsx文件。 需要识别单元格中的文本颜色。 GetCellStyle方法无法明确确定文本颜色,因为它只返回一个整数值 如何获取单元格中的文本颜色?
2 回复
我决定使用“github.com/tealeg/xlsx”。
font_color := cell.GetStyle().Font.Color
更多关于Golang使用Excelize获取xlsx文件中的文本颜色的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
在Excelize中,可以通过GetCellStyle获取样式索引,然后使用GetStyle方法解析样式中的字体颜色信息。以下是获取单元格文本颜色的完整示例:
package main
import (
"fmt"
"log"
"github.com/360EntSecGroup-Skylar/excelize/v2"
)
func getCellTextColor(f *excelize.File, sheet, cell string) (string, error) {
// 获取单元格样式索引
styleID, err := f.GetCellStyle(sheet, cell)
if err != nil {
return "", err
}
// 通过样式索引获取完整样式
style, err := f.GetStyle(styleID)
if err != nil {
return "", err
}
// 检查字体颜色设置
if style.Font != nil && style.Font.Color != "" {
return style.Font.Color, nil
}
return "", fmt.Errorf("未找到文本颜色设置")
}
func main() {
f, err := excelize.OpenFile("example.xlsx")
if err != nil {
log.Fatal(err)
}
defer f.Close()
// 获取A1单元格的文本颜色
color, err := getCellTextColor(f, "Sheet1", "A1")
if err != nil {
log.Fatal(err)
}
fmt.Printf("单元格A1的文本颜色: %s\n", color)
}
颜色值返回的是ARGB格式的字符串,例如:
"FFFF0000"表示红色"FF00FF00"表示绿色"FF0000FF"表示蓝色
如果需要将颜色值转换为标准颜色名称,可以添加颜色映射:
func getColorName(color string) string {
colorMap := map[string]string{
"FFFF0000": "红色",
"FF00FF00": "绿色",
"FF0000FF": "蓝色",
"FFFFFF00": "黄色",
"FF000000": "黑色",
"FFFFFFFF": "白色",
}
if name, exists := colorMap[color]; exists {
return name
}
return "未知颜色"
}
这样就可以准确获取单元格中的文本颜色信息了。

