
Microsoft Excel es la aplicación de hojas de cálculo que goza de mayor popularidad en la actualidad. Siendo utilizada en múltiples entornos de trabajo. Debido a esto es habitual encontrar conjuntos de datos en los que se utiliza alguno de los formatos de archivo de Microsoft Excel (xlsx o xls). Por lo que saber cómo importar y exportar datos en este formato es necesario en muchos entornos. A continuación, se va a explicar como trabajar con archivos Excel en Matlab.
Las funciones para trabajar con archivos Excel en Matlab
Matlab dispone de tres funciones para poder trabajar con archivos en formato Microsoft Excel utilizando matrices o celdas. Estas son:
xlsread
: permite leer archivos de hoja de cálculo en formato Microsoft Excelxlswrite
: permite escribir archivos de hoja de cálculo en formato Microsoft Excelxlsfinfo
: obtiene información de los archivos de hoja de cálculo en formato Microsoft Excel
Las dos funciones más utilizadas son las primeras, las que permite leer datos y escribir datos en archivos. La tercera, xlsfinfo
, es menos conocida, pero es bastante útil cuando no se conoce el número y el nombre de las hojas que contiene un archivo.
Estas funciones utilizan Microsoft Excel para funcionar. Por esto, si no se dispone de una licencia de Excel o se está trabajando en Mac o Linux los datos se guardarán en formato CSV. Con las limitaciones que esto implica, como no disponer de varias hojas en un mismo archivo.

Además de estas funciones también existen las funciones readtable
y writetable
para exportar tablas a diferentes tipos de archivos. La forma leer y guardar tablas en archivos se verá en una futura entrada.
Escribir archivos Excel
Para escribir un archivo en formato Microsoft Excel se utiliza la función xlswrite
. Esta tiene dos parámetros obligatorios el nombre del archivo, una cadena de texto, y los datos a guardar en este, una matriz o celda. Por ejemplo, para guardar una matriz se puede utilizar
xlswrite('sample.xlsx', magic(10))
Como se puede ver en la siguiente captura de pantalla esto guarda la matriz en la primera hoja del libro y a partir de la celda A1.

Esto se puede modificar indicando la hoja, el rango o ambos datos. Por ejemplo, para guardar en la hoja “magic” a partir de C2 se ha de utilizar el siguiente comando.
xlswrite('sample.xlsx', magic(10), 'magic', 'C2')
El resultado se puede ver en la siguiente captura de pantalla.

Lo que se puede apreciar en esta captura es que se ha añadido la nueva hoja a las ya existentes. Lo que facilita guardar múltiples hojas en un mismo libro. Una de las ventajas que ofrecen lo archivos Excel frente a otros formatos como CSV.
Trabajar con texto y fechas
En el caso de que sea necesario trabajar con textos o fechas es necesario utilizar celdas. Así se puede crear un conjunto de datos y guardar éste en una nueva hoja de cálculo. Solamente es necesario indicar la celda el lugar de la matriz.
data = {'Col_1', 'Col_2', 'Col_3'; 1, 2, 3; datestr(737400), datestr(737500), datestr(737600)} xlswrite('sample.xlsx', data, 'cell')
Los resultados se pueden ver en la siguiente captura de pantalla. Al igual que en el caso anterior la hoja de cálculo se ha agregado al libro. En este caso se puede ver como las fechas son interpretadas como tales por Excel.

Obtener información de los archivos Excel
Antes de cargar los datos de un archivo Excel puede ser interesante conocer el contenido de este. Para esto se puede utilizar la función xlsfinfo
. Esta dispone de un único parámetro, el nombre del archivo, y devuelve tres valores: el estado, el listado de hojas y el formato. El estado puede ser “Microsoft Excel Spreadsheet” si es un libro Excel o una cadena vacía en caso contrario. El listado de hojas es una celda con el nombre de todas las hojas del libro. Finalmente, el formato identifica el formato en el que se guarda el libro. Ejecutando esta función sobre el libro que se ha creado en las secciones anteriores se obtiene.
[status, sheets, format] = xlsfinfo('sample.xlsx')
status = Microsoft Excel Spreadsheet sheets = 'Hoja1' 'Hoja2' 'Hoja3' 'magic' 'cell' format = xlOpenXMLWorkbook
Posiblemente el parámetro más importante es el segundo, ya que permite conocer el nombre de las hojas disponibles. El primero informa de si el archivo es un libro en formato Microsoft Excel o no.
Importación de los datos
La importación de los datos se realiza mediante la función xlsread
. Esta tiene un parámetro obligatorio, el nombre del archivo. Aunque es aconsejable utilizar también el nombre de la hoja a importar como segundo parámetro. Ya que en caso contrario se importará el contenido de la primera, sea esta la que sea. Además, como tercer parámetro se puede indicar el rango de celdas a importa.
La función devuelve tres valores: una matriz con los valores numéricos, una celda con los textos y una celda con todos los valores. A modo de ejemplo se puede importar la hoja “cell” ya que esta es la que contiene todos los tipos de valores.
[num, txt, raw] = xlsread('sample.xlsx', 'cell')
num = 1 2 3 txt = 'Col_1' 'Col_2' 'Col_3' '' '' '' '06/12/2018' '16/03/2019' '24/06/2019' raw = 'Col_1' 'Col_2' 'Col_3' [ 1] [ 2] [ 3] '06/12/2018' '16/03/2019' '24/06/2019'
Lo que se puede observar en los resultados es que las fechas son importadas como texto. Por lo que será necesario saber dónde existe este tipo de datos y transformarlo en caso de que sea necesario.
Habitualmente se utilizará el primer valor devuelto, ya que es habitual trabajar solo con números, o el tercero.
Conclusiones
En esta ocasión se ha visto cómo trabajar con archivos Excel en Matlab. Aunque la entrada se ha centrado en las funciones que trabajan con matrices y celdas se han cubierto la mayoría de los casos. En una futura entrada se verá cómo usar las funciones de Matlab para guarda en archivos tablas.
Matlab es una herramienta que permite trabajar con múltiples formatos de archivos. Por ejemplo, la importación de archivos JSON en Matlab se puede hacer con jsondecode
y los CSV con csvread
. Los archivos en formato Microsoft Excel son un caso más.
Imágenes: Unsplash (rawpixel)
Deja una respuesta