Permalink
Browse files

Do not create a blank fill if no fill is specified in the style format

  • Loading branch information...
mmitton committed Jan 9, 2019
1 parent 055d3fa commit 5dd00b9a004d5a7bc867ed09387cbd88fed240e4
Showing with 41 additions and 3 deletions.
  1. +7 −3 styles.go
  2. +34 −0 styles_test.go
@@ -1907,9 +1907,11 @@ func (f *File) NewStyle(style string) (int, error) {
s.Borders.Border = append(s.Borders.Border, setBorders(fs))
borderID = s.Borders.Count - 1

s.Fills.Count++
s.Fills.Fill = append(s.Fills.Fill, setFills(fs, true))
fillID = s.Fills.Count - 1
if fill := setFills(fs, true); fill != nil {
s.Fills.Count++
s.Fills.Fill = append(s.Fills.Fill, fill)
fillID = s.Fills.Count - 1
}

applyAlignment, alignment := fs.Alignment != nil, setAlignment(fs)
applyProtection, protection := fs.Protection != nil, setProtection(fs)
@@ -2145,6 +2147,8 @@ func setFills(formatStyle *formatStyle, fg bool) *xlsxFill {
pattern.BgColor.RGB = getPaletteColor(formatStyle.Fill.Color[0])
}
fill.PatternFill = &pattern
default:
return nil
}
return &fill
}
@@ -6,6 +6,40 @@ import (
"github.com/stretchr/testify/assert"
)

func TestStyleFill(t *testing.T) {
cases := []struct {
label string
format string
expectFill bool
}{{
label: "no_fill",
format: `{"alignment":{"wrap_text":true}}`,
expectFill: false,
}, {
label: "fill",
format: `{"fill":{"type":"pattern","pattern":1,"color":["#000000"]}}`,
expectFill: true,
}}

for _, testCase := range cases {
xl := NewFile()
const sheet = "Sheet1"

styleID, err := xl.NewStyle(testCase.format)
if err != nil {
t.Fatalf("%v", err)
}

styles := xl.stylesReader()
style := styles.CellXfs.Xf[styleID]
if testCase.expectFill {
assert.NotEqual(t, style.FillID, 0, testCase.label)
} else {
assert.Equal(t, style.FillID, 0, testCase.label)
}
}
}

func TestSetConditionalFormat(t *testing.T) {
cases := []struct {
label string

0 comments on commit 5dd00b9

Please sign in to comment.