Skip to content

Commit 8bf639c

Browse files
authored
Fix: skipped column style bug in StreamWriter's SetRow (qax-os#2235)
1 parent bfa81ac commit 8bf639c

File tree

2 files changed

+21
-8
lines changed

2 files changed

+21
-8
lines changed

stream.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ func (sw *StreamWriter) SetRow(cell string, values []interface{}, opts ...RowOpt
413413
if err != nil {
414414
return err
415415
}
416-
c := xlsxC{R: ref, S: sw.worksheet.prepareCellStyle(col, row, options.StyleID)}
416+
c := xlsxC{R: ref, S: sw.worksheet.prepareCellStyle(col+i, row, options.StyleID)}
417417
var s int
418418
if v, ok := val.(Cell); ok {
419419
s, val = v.StyleID, v.Value

stream_test.go

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -362,22 +362,35 @@ func TestStreamSetRowWithStyle(t *testing.T) {
362362
blueStyleID, err := file.NewStyle(&Style{Font: &Font{Color: "0000FF"}})
363363
assert.NoError(t, err)
364364

365-
streamWriter, err := file.NewStreamWriter("Sheet1")
365+
sheetName := "Sheet1"
366+
streamWriter, err := file.NewStreamWriter(sheetName)
366367
assert.NoError(t, err)
368+
assert.NoError(t, streamWriter.SetColStyle(1, 1, grayStyleID))
369+
assert.NoError(t, streamWriter.SetColStyle(3, 3, blueStyleID))
367370
assert.NoError(t, streamWriter.SetRow("A1", []interface{}{
368-
"value1",
369-
Cell{Value: "value2"},
370-
&Cell{Value: "value2"},
371-
Cell{StyleID: blueStyleID, Value: "value3"},
372-
&Cell{StyleID: blueStyleID, Value: "value3"},
371+
"A1",
372+
Cell{Value: "B1"},
373+
&Cell{Value: "C1"},
374+
Cell{StyleID: blueStyleID, Value: "D1"},
375+
&Cell{StyleID: blueStyleID, Value: "E1"},
373376
}, RowOpts{StyleID: grayStyleID}))
377+
assert.NoError(t, streamWriter.SetRow("A2", []interface{}{
378+
"A2",
379+
Cell{Value: "B2"},
380+
&Cell{Value: "C2"},
381+
Cell{StyleID: grayStyleID, Value: "D2"},
382+
&Cell{StyleID: blueStyleID, Value: "E2"},
383+
}))
374384
assert.NoError(t, streamWriter.Flush())
375385

376-
ws, err := file.workSheetReader("Sheet1")
386+
ws, err := file.workSheetReader(sheetName)
377387
assert.NoError(t, err)
378388
for colIdx, expected := range []int{grayStyleID, grayStyleID, grayStyleID, blueStyleID, blueStyleID} {
379389
assert.Equal(t, expected, ws.SheetData.Row[0].C[colIdx].S)
380390
}
391+
for colIdx, expected := range []int{grayStyleID, 0, blueStyleID, grayStyleID, blueStyleID} {
392+
assert.Equal(t, expected, ws.SheetData.Row[1].C[colIdx].S)
393+
}
381394
}
382395

383396
func TestStreamSetCellValFunc(t *testing.T) {

0 commit comments

Comments
 (0)