mirror of
https://gitee.com/xurime/excelize.git
synced 2025-12-06 06:48:50 +08:00
Fix: skipped column style bug in StreamWriter's SetRow (#2235)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user