diff options
author | xuri <xuri.me@gmail.com> | 2020-04-02 00:41:14 +0800 |
---|---|---|
committer | xuri <xuri.me@gmail.com> | 2020-04-05 13:51:00 +0800 |
commit | 0f2a9053246c3ae45e6c7ba911a1fb135664abdf (patch) | |
tree | 7428d041bcd06956933003598fa56b0b0c246945 /rows.go | |
parent | 59f6af21a378fdde21422a92b79a7b03bba313d4 (diff) |
Performance improvements
Diffstat (limited to 'rows.go')
-rw-r--r-- | rows.go | 14 |
1 files changed, 8 insertions, 6 deletions
@@ -424,14 +424,16 @@ func (f *File) RemoveRow(sheet string, row int) error { if row > len(xlsx.SheetData.Row) { return f.adjustHelper(sheet, rows, row, -1) } - for rowIdx := range xlsx.SheetData.Row { - if xlsx.SheetData.Row[rowIdx].R == row { - xlsx.SheetData.Row = append(xlsx.SheetData.Row[:rowIdx], - xlsx.SheetData.Row[rowIdx+1:]...)[:len(xlsx.SheetData.Row)-1] - return f.adjustHelper(sheet, rows, row, -1) + keep := 0 + for rowIdx := 0; rowIdx < len(xlsx.SheetData.Row); rowIdx++ { + v := &xlsx.SheetData.Row[rowIdx] + if v.R != row { + xlsx.SheetData.Row[keep] = *v + keep++ } } - return nil + xlsx.SheetData.Row = xlsx.SheetData.Row[:keep] + return f.adjustHelper(sheet, rows, row, -1) } // InsertRow provides a function to insert a new row after given Excel row |