Skip to content

Commit

Permalink
This reduces memory usage and speedup the AddComment function (#1311)
Browse files Browse the repository at this point in the history
By load only once for existing comment shapes, improving performance for adding comments in the worksheet
  • Loading branch information
ee0703 committed Aug 10, 2022
1 parent e07dac5 commit b8ceaf7
Showing 1 changed file with 15 additions and 14 deletions.
29 changes: 15 additions & 14 deletions comment.go
Expand Up @@ -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{
Fill: &vFill{
Expand Down Expand Up @@ -222,20 +237,6 @@ func (f *File) addDrawingVML(commentID int, drawingVML, cell string, lineCount,
Strokecolor: "#edeaa1",
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)
f.VMLDrawing[drawingVML] = vml
return err
Expand Down

0 comments on commit b8ceaf7

Please sign in to comment.