Closed xiaoxfan closed 3 years ago
I have a large amount of excel sheets. so I use a for loop to parse the data of each excel then I got an OOM
func Foo() { for { xlFile, err := xls.Open("example.xls", "utf-8") // when it done.memory does not free if err != nil || xlFile == nil { fmt.Println(err) } sheets := xlFile.NumSheets() for i := 0; i < sheets; i++ { if sheet := xlFile.GetSheet(i); sheet != nil { for i := 0; i <= (int(sheet.MaxRow)); i++ { row1 := sheet.Row(i) if row1 == nil { continue } for i := row1.FirstCol(); i <= row1.LastCol(); i++ { colCell := row1.Col(i) fmt.Println(colCell) } } } } } }
i tihink xls.Open() method the file handle is not closed is bug,but you can do that:
fd, err := os.Open(file) if err != nil { return nil, err } defer fd.Close()//close file handle! f, err := xls.OpenReader(fd, "utf-8") if err != nil { return nil, err } sheet1 := f.GetSheet(0)
I have initiated issues :https://github.com/extrame/xls/issues/76
I have a large amount of excel sheets. so I use a for loop to parse the data of each excel then I got an OOM