Ciao,
potrebbe essere che la funzione crea_excel() restituisce il riferimento al file, quindi dopo qualche file la memoria si esaurisce. Dovresti vedere se esiste qualche funzione che permette di eliminare questo riferimento.