forked from p30928647/excelize
Now support set row style in the stream writer
This commit is contained in:
parent
2d8b5b1885
commit
e52e755282
13
stream.go
13
stream.go
|
@ -84,6 +84,12 @@ type StreamWriter struct {
|
|||
// excelize.Cell{Value: 2},
|
||||
// excelize.Cell{Formula: "SUM(A1,B1)"}});
|
||||
//
|
||||
// Set cell value and rows style for a worksheet with stream writer:
|
||||
//
|
||||
// err := streamWriter.SetRow("A1", []interface{}{
|
||||
// excelize.Cell{Value: 1}},
|
||||
// excelize.RowOpts{StyleID: styleID, Height: 20, Hidden: false});
|
||||
//
|
||||
func (f *File) NewStreamWriter(sheet string) (*StreamWriter, error) {
|
||||
sheetID := f.getSheetID(sheet)
|
||||
if sheetID == -1 {
|
||||
|
@ -289,10 +295,12 @@ type Cell struct {
|
|||
Value interface{}
|
||||
}
|
||||
|
||||
// RowOpts define the options for set row.
|
||||
// RowOpts define the options for the set row, it can be used directly in
|
||||
// StreamWriter.SetRow to specify the style and properties of the row.
|
||||
type RowOpts struct {
|
||||
Height float64
|
||||
Hidden bool
|
||||
StyleID int
|
||||
}
|
||||
|
||||
// SetRow writes an array to stream rows by giving a worksheet name, starting
|
||||
|
@ -356,6 +364,9 @@ func marshalRowAttrs(opts ...RowOpts) (attrs string, err error) {
|
|||
err = ErrMaxRowHeight
|
||||
return
|
||||
}
|
||||
if opt.StyleID > 0 {
|
||||
attrs += fmt.Sprintf(` s="%d" customFormat="true"`, opt.StyleID)
|
||||
}
|
||||
if opt.Height > 0 {
|
||||
attrs += fmt.Sprintf(` ht="%v" customHeight="true"`, opt.Height)
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ func TestStreamWriter(t *testing.T) {
|
|||
// Test set cell with style.
|
||||
styleID, err := file.NewStyle(`{"font":{"color":"#777777"}}`)
|
||||
assert.NoError(t, err)
|
||||
assert.NoError(t, streamWriter.SetRow("A4", []interface{}{Cell{StyleID: styleID}, Cell{Formula: "SUM(A10,B10)"}}), RowOpts{Height: 45})
|
||||
assert.NoError(t, streamWriter.SetRow("A4", []interface{}{Cell{StyleID: styleID}, Cell{Formula: "SUM(A10,B10)"}}), RowOpts{Height: 45, StyleID: styleID})
|
||||
assert.NoError(t, streamWriter.SetRow("A5", []interface{}{&Cell{StyleID: styleID, Value: "cell"}, &Cell{Formula: "SUM(A10,B10)"}}))
|
||||
assert.NoError(t, streamWriter.SetRow("A6", []interface{}{time.Now()}))
|
||||
assert.NoError(t, streamWriter.SetRow("A7", nil, RowOpts{Hidden: true}))
|
||||
|
|
Loading…
Reference in New Issue