@@ -358,3 +358,31 @@ func TestStreamSetCellValFunc(t *testing.T) {
358
358
assert .NoError (t , sw .setCellValFunc (c , nil ))
359
359
assert .NoError (t , sw .setCellValFunc (c , complex64 (5 + 10i )))
360
360
}
361
+
362
+ func TestStreamWriterOutlineLevel (t * testing.T ) {
363
+ file := NewFile ()
364
+ streamWriter , err := file .NewStreamWriter ("Sheet1" )
365
+ assert .NoError (t , err )
366
+
367
+ // Test set outlineLevel in row.
368
+ assert .NoError (t , streamWriter .SetRow ("A1" , nil , RowOpts {OutlineLevel : 1 }))
369
+ assert .NoError (t , streamWriter .SetRow ("A2" , nil , RowOpts {OutlineLevel : 7 }))
370
+ assert .ErrorIs (t , ErrOutlineLevel , streamWriter .SetRow ("A3" , nil , RowOpts {OutlineLevel : 8 }))
371
+
372
+ assert .NoError (t , streamWriter .Flush ())
373
+ // Save spreadsheet by the given path.
374
+ assert .NoError (t , file .SaveAs (filepath .Join ("test" , "TestStreamWriterSetRowOutlineLevel.xlsx" )))
375
+
376
+ file , err = OpenFile (filepath .Join ("test" , "TestStreamWriterSetRowOutlineLevel.xlsx" ))
377
+ assert .NoError (t , err )
378
+ level , err := file .GetRowOutlineLevel ("Sheet1" , 1 )
379
+ assert .NoError (t , err )
380
+ assert .Equal (t , uint8 (1 ), level )
381
+ level , err = file .GetRowOutlineLevel ("Sheet1" , 2 )
382
+ assert .NoError (t , err )
383
+ assert .Equal (t , uint8 (7 ), level )
384
+ level , err = file .GetRowOutlineLevel ("Sheet1" , 3 )
385
+ assert .NoError (t , err )
386
+ assert .Equal (t , uint8 (0 ), level )
387
+ assert .NoError (t , file .Close ())
388
+ }
0 commit comments