Nicolás lo que te recomiendo es lo siguiente:
vas a implementar un tipo de datos---> Lista de Listas
1º) tienes que tener un constructor, que te crea la estructura vacia para luego ir insertando cosas
2º)Tienes que tener un destructor, que te destruya la estructura
3º) tienes que tener las funciones de predicados, es decir, que te diga si está vacía la celda o no, si te interesa buscar datos en la hoja de calculo, podrias tener una funcion que realize la busqueda
4º) Tienes que tener una funcion que te agregue elementos a la hoja de calculo (funcion Insertar celda, te crea e inserta una celda) y otra que elimine elementos de la hoja de calculo (funcion remover celda) [ tener en cuenta que estas funciones lo que hacen es crear celdas en la hoja de calculo, y destruir celdas en la hoja de calculo, por lo tanto no son las mismas que las funciones en 2º y en 3º ya que estas ultimas te crean y destruyes la estructura].
Lo mejor a la hora de resolver este tipo de problemas es abstraerse del problema, saber bien que es lo que estas haciendo,---> una hoja de calculo que se compone por celdas, pues bien debo tener la hoja creada para poder trabajar en las celdas, entonces creas la hoja, y como se crea vacia, ahora que ya tienes la estructura debes crear einsertar celdas en ella.
Saludos
Leandro.