forked from p30928647/excelize
This reduces memory usage and speedup the `AddComment` function (#1311)
By load only once for existing comment shapes, improving performance for adding comments in the worksheet
This commit is contained in:
parent
e07dac5c2e
commit
b8ceaf7bf6
29
comment.go
29
comment.go
|
@ -178,6 +178,21 @@ func (f *File) addDrawingVML(commentID int, drawingVML, cell string, lineCount,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
// load exist comment shapes from xl/drawings/vmlDrawing%d.vml (only once)
|
||||||
|
d := f.decodeVMLDrawingReader(drawingVML)
|
||||||
|
if d != nil {
|
||||||
|
for _, v := range d.Shape {
|
||||||
|
s := xlsxShape{
|
||||||
|
ID: "_x0000_s1025",
|
||||||
|
Type: "#_x0000_t202",
|
||||||
|
Style: "position:absolute;73.5pt;width:108pt;height:59.25pt;z-index:1;visibility:hidden",
|
||||||
|
Fillcolor: "#fbf6d6",
|
||||||
|
Strokecolor: "#edeaa1",
|
||||||
|
Val: v.Val,
|
||||||
|
}
|
||||||
|
vml.Shape = append(vml.Shape, s)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
sp := encodeShape{
|
sp := encodeShape{
|
||||||
Fill: &vFill{
|
Fill: &vFill{
|
||||||
|
@ -222,20 +237,6 @@ func (f *File) addDrawingVML(commentID int, drawingVML, cell string, lineCount,
|
||||||
Strokecolor: "#edeaa1",
|
Strokecolor: "#edeaa1",
|
||||||
Val: string(s[13 : len(s)-14]),
|
Val: string(s[13 : len(s)-14]),
|
||||||
}
|
}
|
||||||
d := f.decodeVMLDrawingReader(drawingVML)
|
|
||||||
if d != nil {
|
|
||||||
for _, v := range d.Shape {
|
|
||||||
s := xlsxShape{
|
|
||||||
ID: "_x0000_s1025",
|
|
||||||
Type: "#_x0000_t202",
|
|
||||||
Style: "position:absolute;73.5pt;width:108pt;height:59.25pt;z-index:1;visibility:hidden",
|
|
||||||
Fillcolor: "#fbf6d6",
|
|
||||||
Strokecolor: "#edeaa1",
|
|
||||||
Val: v.Val,
|
|
||||||
}
|
|
||||||
vml.Shape = append(vml.Shape, s)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
vml.Shape = append(vml.Shape, shape)
|
vml.Shape = append(vml.Shape, shape)
|
||||||
f.VMLDrawing[drawingVML] = vml
|
f.VMLDrawing[drawingVML] = vml
|
||||||
return err
|
return err
|
||||||
|
|
Loading…
Reference in New Issue