Bienvenido a la web de la Oficina del Software Libre y Conocimiento Abierto de la Universidad de Cádiz

Sustituto de Office 2007

Hola! Sabéis de alguna hoja de cálculo de software libre con + de 65536 filas?

Gracias por adelantado.

Un saludo!

¿Octave como hoja de cálculo?

No suelo usar las hojas de cálculo, ni sé si te servirá todo lo que comento aquí, pero por si acaso...

Estuve en un curso sobre simulación de riesgos financieros. Era gente que trabajaba para bancos, haciendo análisis de la rentabilidad de productos financieros muy complicados. Para su trabajo día a día usaban hojas de cálculo, para trabajos más complicados Octave (o Matlab, que es mucho peor, porque no es libre). Puntualmente, programaban en C.

Digo esto porque, si necesitas más de 65536 filas, supongo que tienes grandes conjuntos de datos numéricos que, quizás, obtienes automáticamente o lees de algún fichero previamente existente.

Si es así, para el tratamiento de los datos numéricos (no para otros tipos de datos como cadenas de caracteres), hay una fórmula que te puede funcionar (y que es la que se aconseja en varios sitios de internet que he visitado para informarme). Se trata de importar los datos desde Octave (o Matlab, que es mucho peor porque no es libre, la última vez que lo digo). Bien sea directamente, bien desde la hoja de cálculo que utilices.

Si puedes exportar los datos a un fichero de texto (en forma de filas y columnas separadas por espacios en blanco) los podrás importar en una matriz de octave utilizando la orden "load" como comento más abajo.

Si en vez de ello tienes ya los datos en varias hojas de cálculo (de tamaño menor que 65536) puedes importar los datos desde cada una de ellas en Octave. Por ejemplo, desde OpenOffice Calc (que es la hoja de cálculo que utilizo) pulsas grabar como... elijes el tipo de fichero "CSV" (comma separated value) y en la ventana que se abre le especificas que, como separador de datos, quieres espacios en blanco (en vez de comas).

A continuación, sólo tienes que importar los datos desde Octave (si no lo has usado, te aconsejo usar qtOctave, lo puedes descargar de http://qtoctave.wordpress.com/). Por ejemplo, en la terminal, puedes escribir algo como:

> A = load("fichero.csv")

A partir de ahí, tendras todo el contenido de tu hoja de cálculo en una matriz. Si quieres introducir más datos, tendrás que repetir el proceso, por ejemplo creando una segunda matriz B, etc. Usando el lenguale Octave/Matlab es muy fácil unir todas estas matrices.

Cuando tengas los datos en matrices de Octave, has vencido. Puedes usar tantas filas como quieras y emplear toda la potencia de Octave para tratar los datos de forma mucho más eficiente y con muchas más funciones pre-definidas que en una hoja de cálculo.

Por ejemplo, acabo de teclear este código que crea una matriz de 1.000.000 filas y 10 columnas, multiplicando un vector columna por un vector fila. El único límite, en la práctica, es la memoria de tu ordenador:

octave:1> B=0:10;
octave:2> A=1:10^6;
octave:3> A'*B;
octave:4> tic
octave:5> A'*B;
octave:6> toc
Elapsed time is 6.501 seconds.

Para saber más de Octave/Matlab te recomiendo el libro (libre) de Guillem Borrel: http://iimyo.forja.rediris.es/. Aunque (la última vez que lo vi) no hablaba de qtOctave. Tienes también las transparencias de un curso que di en http://ciencialibre.forja.rediris.es/.

Un saludo,
Rafa.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Distribuir contenido