diff --git a/stream.go b/stream.go index aae41a5747..46c6a3e46c 100644 --- a/stream.go +++ b/stream.go @@ -413,7 +413,7 @@ func (sw *StreamWriter) SetRow(cell string, values []interface{}, opts ...RowOpt if err != nil { return err } - c := xlsxC{R: ref, S: sw.worksheet.prepareCellStyle(col, row, options.StyleID)} + c := xlsxC{R: ref, S: sw.worksheet.prepareCellStyle(col+i, row, options.StyleID)} var s int if v, ok := val.(Cell); ok { s, val = v.StyleID, v.Value diff --git a/stream_test.go b/stream_test.go index 1fa480a797..e58e85d676 100644 --- a/stream_test.go +++ b/stream_test.go @@ -362,22 +362,35 @@ func TestStreamSetRowWithStyle(t *testing.T) { blueStyleID, err := file.NewStyle(&Style{Font: &Font{Color: "0000FF"}}) assert.NoError(t, err) - streamWriter, err := file.NewStreamWriter("Sheet1") + sheetName := "Sheet1" + streamWriter, err := file.NewStreamWriter(sheetName) assert.NoError(t, err) + assert.NoError(t, streamWriter.SetColStyle(1, 1, grayStyleID)) + assert.NoError(t, streamWriter.SetColStyle(3, 3, blueStyleID)) assert.NoError(t, streamWriter.SetRow("A1", []interface{}{ - "value1", - Cell{Value: "value2"}, - &Cell{Value: "value2"}, - Cell{StyleID: blueStyleID, Value: "value3"}, - &Cell{StyleID: blueStyleID, Value: "value3"}, + "A1", + Cell{Value: "B1"}, + &Cell{Value: "C1"}, + Cell{StyleID: blueStyleID, Value: "D1"}, + &Cell{StyleID: blueStyleID, Value: "E1"}, }, RowOpts{StyleID: grayStyleID})) + assert.NoError(t, streamWriter.SetRow("A2", []interface{}{ + "A2", + Cell{Value: "B2"}, + &Cell{Value: "C2"}, + Cell{StyleID: grayStyleID, Value: "D2"}, + &Cell{StyleID: blueStyleID, Value: "E2"}, + })) assert.NoError(t, streamWriter.Flush()) - ws, err := file.workSheetReader("Sheet1") + ws, err := file.workSheetReader(sheetName) assert.NoError(t, err) for colIdx, expected := range []int{grayStyleID, grayStyleID, grayStyleID, blueStyleID, blueStyleID} { assert.Equal(t, expected, ws.SheetData.Row[0].C[colIdx].S) } + for colIdx, expected := range []int{grayStyleID, 0, blueStyleID, grayStyleID, blueStyleID} { + assert.Equal(t, expected, ws.SheetData.Row[1].C[colIdx].S) + } } func TestStreamSetCellValFunc(t *testing.T) {