vicanso / go-charts

A charts library for Golang
MIT License
216 stars 33 forks source link

表格:字体颜色设置不上 #47

Closed huizhang001 closed 1 year ago

huizhang001 commented 1 year ago

`package main

import ( "github.com/vicanso/go-charts/v2" "io/ioutil" "os" "path/filepath" )

func main() { // 字体文件需要自行下载 // https://github.com/googlefonts/noto-cjk buf, err := ioutil.ReadFile("xxx") if err != nil { panic(err) } err = charts.InstallFont("noto", buf) if err != nil { panic(err) }

p, err := charts.TableOptionRender(charts.TableChartOption{
    Header: []string{
        "xxxxx",
        "xxxx",
        "xxxxx",
        "xxxxx",
    },
    HeaderFontColor: charts.Color{
        R: 16,
        G: 22,
        B: 30,
        A: 255,
    },
    FontFamily: "noto",
    Spans: []int{
        10, 3, 5, 5,
    },
    Data: [][]string{
        {
            "xxxx",
            "是",
            "933",
            "231",
        }
    },
    Width: 1200,
    TextAligns: []string{
        charts.AlignLeft,
        charts.AlignCenter,
        charts.AlignCenter,
        charts.AlignCenter,
    },
    CellStyle: func(tc charts.TableCell) *charts.Style {
        column := tc.Column
        if column != 1 {
            return nil
        }

        style := charts.Style{
            FontColor: charts.Color{
                R: 179,
                G: 53,
                B: 20,
                A: 255,
            },
        }
        //if value > 0 {
        //  style.FillColor = charts.Color{
        //      R: 179,
        //      G: 53,
        //      B: 20,
        //      A: 255,
        //  }
        //} else if value < 0 {
        //  style.FillColor = charts.Color{
        //      R: 33,
        //      G: 124,
        //      B: 50,
        //      A: 255,
        //  }
        //}
        return &style
    },
})
if err != nil {
    panic(err)
}

buf, err = p.Bytes()
if err != nil {
    panic(err)
}
err = writeFile(buf, "table-color.png")
if err != nil {
    panic(err)
}

}

func writeFile(buf []byte, filename string) error { tmpPath := "./tmp" err := os.MkdirAll(tmpPath, 0700) if err != nil { return err }

file := filepath.Join(tmpPath, filename)
err = ioutil.WriteFile(file, buf, 0600)
if err != nil {
    return err
}
return nil

} `

image
vicanso commented 1 year ago

@huizhang001 需要使用CellTextStyle设置字体相关的样式