Main Content

xlsread

(No recomendado) Leer un archivo de hoja de cálculo

xlsread no se recomienda. En su lugar, utilice readtable, readmatrix o readcell. Para obtener más información, consulte Consideraciones sobre compatibilidad.

Descripción

ejemplo

num = xlsread(filename) lee la primera hoja de cálculo del libro de Microsoft® Excel® llamado filename y devuelve los datos numéricos en una matriz.

num = xlsread(filename,sheet) lee la hoja de cálculo especificada.

ejemplo

num = xlsread(filename,xlRange) lee en el intervalo especificado de la primera hoja de cálculo del libro. Utilice la sintaxis de intervalo de Excel, como 'A1:C3'.

ejemplo

num = xlsread(filename,sheet,xlRange) lee en la hoja de cálculo y el intervalo especificados.

num = xlsread(filename,sheet,xlRange,'basic') lee los datos de la hoja de cálculo en el modo de importación basic. Si su ordenador no dispone de Excel para Windows® o si está utilizando MATLAB® Online™, xlsread opera automáticamente en el modo de importación basic, que es compatible con archivos XLS, XLSX, XLSM, XLTX y XLTM.

Si no especifica todos los argumentos, utilice vectores de caracteres vacíos '' como marcadores de posición; por ejemplo, num = xlsread(filename,'','','basic').

ejemplo

[num,txt,raw] = xlsread(___) devuelve además los campos de texto en el arreglo de celdas txt, así como los datos numéricos y de texto en el arreglo de celdas raw, utilizando cualquiera de los argumentos de entrada de las sintaxis anteriores.

___ = xlsread(filename,-1) abre una ventana Excel para seleccionar datos de forma interactiva. Seleccione la hoja de cálculo, arrastre y suelte el ratón sobre el rango que desee y haga clic en OK. Esta sintaxis solo se admite en ordenadores Windows con el software Microsoft Excel instalado.

ejemplo

[num,txt,raw,custom] = xlsread(filename,sheet,xlRange,'',processFcn), donde processFcn es un identificador de función, lee en la hoja de cálculo, llama a processFcn en los datos y devuelve los resultados finales como datos numéricos en el arreglo num. La función xlsread devuelve los campos de texto en el arreglo de celdas txt, los datos numéricos y de texto en el arreglo de celdas raw y la segunda salida de processFcn en el arreglo custom. La función xlsread no cambia los datos almacenados en la hoja de cálculo. Esta sintaxis solo se admite en ordenadores Windows con el software Excel.

Ejemplos

contraer todo

Cree un archivo de Excel llamado myExample.xlsx.

values = {1, 2, 3 ; 4, 5, 'x' ; 7, 8, 9};
headers = {'First','Second','Third'};
xlswrite('myExample.xlsx',[headers; values]);

La hoja Sheet1 de myExample.xlsx contiene lo siguiente:

   First    Second    Third
       1         2        3
       4         5    x    
       7         8        9

Lea los datos numéricos de la primera hoja de cálculo.

filename = 'myExample.xlsx';
A = xlsread(filename)
A =
     1     2     3
     4     5   NaN
     7     8     9

Lea un rango de datos específico del archivo de Excel en el ejemplo anterior.

filename = 'myExample.xlsx';
sheet = 1;
xlRange = 'B2:C3';

subsetA = xlsread(filename,sheet,xlRange)
subsetA =
     2     3
     5   NaN

Lea la segunda columna del archivo de Excel en el primer ejemplo.

filename = 'myExample.xlsx';

columnB = xlsread(filename,'B:B')
columnB =
     2
     5
     8

Para obtener mejores resultados, incluya los números de fila en el rango, como 'B1:B3'.

Solicite los datos numéricos, los de texto y los datos combinados del archivo de Excel en el primer ejemplo.

[num,txt,raw] = xlsread('myExample.xlsx')
num =
     1     2     3
     4     5   NaN
     7     8     9

txt = 
    'First'    'Second'    'Third'
    ''         ''          ''     
    ''         ''          'x'    

raw = 
    'First'    'Second'    'Third'
    [    1]    [     2]    [    3]
    [    4]    [     5]    'x'    
    [    7]    [     8]    [    9]

En el editor, cree una función para procesar los datos de una hoja de cálculo. En este caso, establezca valores fuera del intervalo [0.2,0.8] en 0.2 o 0.8.

function [Data] = setMinMax(Data)

minval = 0.2; 
maxval = 0.8;
 
for k = 1:Data.Count
  v = Data.Value{k};
  if v > maxval
    Data.Value{k} = maxval;
  elseif v < minval
    Data.Value{k} = minval;
  end
end

En la ventana de comandos, añada datos aleatorios a myExample.xlsx.

A = rand(5);
xlswrite('myExample.xlsx',A,'MyData')

La hoja de cálculo llamada MyData contiene valores que varían de 0 a 1.

Lea los datos de la hoja de cálculo y restablezca cualquier valor fuera del intervalo [0.2,0.8]. Especifique el nombre de la hoja, pero utilice '' como marcadores de posición para las entradas xlRange y 'basic'.

trim = xlsread('myExample.xlsx','MyData','','',@setMinMax);

Ejecute una función en una hoja de cálculo y muestre la salida de índice personalizada.

En el editor, modifique la función setMinMax del ejemplo previo para devolver los índices de los elementos cambiados (salida personalizada).

function [Data,indices] = setMinMax(Data)

minval = 0.2; 
maxval = 0.8;
indices = [];
 
for k = 1:Data.Count
  v = Data.Value{k};
  if v > maxval
    Data.Value{k} = maxval;
    indices = [indices k];
  elseif v < minval
    Data.Value{k} = minval;
    indices = [indices k];
  end  
end

Lea los datos de la hoja de cálculo MyData y solicite la salida de índice personalizada idx.

[trim,txt,raw,idx] = xlsread('myExample.xlsx',...
    'MyData','','',@setMinMax);

Argumentos de entrada

contraer todo

Nombre de archivo, especificado como vector de caracteres o cadena. Si no incluye una extensión, xlsread busca un archivo con el nombre especificado y una extensión de Excel compatible. xlsread puede leer datos guardados en archivos que están abiertos en el momento en Excel para Windows.

Ejemplo: 'myFile.xlsx' o "myFile.xlsx"

Tipos de datos: char | string

Hoja de cálculo, especificada como una de las siguientes opciones:

  • Vector de caracteres o cadena con el nombre de la hoja de cálculo. El nombre no puede contener dos puntos (:). Para determinar los nombres de las hojas en un archivo de hoja de cálculo, utilice xlsfinfo. Para archivos XLS en modo basic, sheet distingue entre mayúsculas y minúsculas.

  • Entero positivo que indica el índice de la hoja de cálculo. No se admite esta opción en archivos XLS en modo basic.

Tipos de datos: char | string | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Rango rectangular, especificado como vector de caracteres o cadena.

Especifique xlRange utilizando dos esquinas opuestas que definan la región que se desea leer. Por ejemplo, 'D2:H4' representa la región rectangular de 3 por 5 entre las dos esquinas D2 y H4 en la hoja de cálculo. La entrada xlRange no distingue entre mayúsculas y minúsculas, y utiliza el estilo de referencia A1 de Excel (consulte Excel para obtener ayuda).

No se admite la selección de rango cuando se leen archivos XLS en modo basic. En este caso, utilice '' en lugar de xlRange.

Si no especifica sheet, xlRange debe incluir ambas esquinas y un carácter de dos puntos, incluso para una única celda (como 'D2:D2'). Si no, xlsread interpreta la entrada como el nombre de una hoja de cálculo (como 'sales' o 'D2').

Si especifica sheet, xlRange:

  • No tiene que incluir un carácter de dos puntos ni la esquina opuesta para describir una única celda.

  • Puede hacer referencia a un rango específico que haya definido previamente en el archivo de Excel (consulte Excel para obtener ayuda).

Cuando el valor xlRange especificado se solapa con celdas combinadas:

  • En ordenadores Windows con Excel, xlsread amplía el rango para incluir todas las celdas combinadas.

  • En ordenadores sin Excel para Windows, xlsread devuelve datos solo para el rango especificado, con valores vacíos o NaN para las celdas combinadas.

Tipos de datos: char | string

Indicador para solicitar lectura en el modo basic, especificado como vector de caracteres o cadena 'basic'.

El modo basic es el predeterminado para ordenadores sin Excel para Windows. En el modo basic, xlsread:

  • Lee solo archivos LS, XLSX, XLSM, XLTX y XLTM.

  • No es compatible con una entrada xlRange mientras lee archivos XLS. En este caso, utilice '' en lugar de xlRange.

  • No es compatible con las entradas de identificadores de función.

  • Importa todas las fechas como números de fecha de serie de Excel. Los números de fecha de serie de Excel utilizan una fecha de referencia distinta que los números de fecha de MATLAB.

Tipos de datos: char | string

Identificador de función personalizada. Este argumento solo es compatible con ordenadores Windows con software Excel. xlsread lee en la hoja de cálculo, ejecuta su función en una copia de los datos y devuelve los resultados finales. xlsread no cambia los datos almacenados en la hoja de cálculo.

Cuando xlsread llama a la función personalizada, pasa una interfaz de rango desde la aplicación Excel para proporcionar acceso a los datos. La función personalizada debe incluir esta interfaz tanto como argumento de entrada como de salida (consulte Ejecutar una función en una hoja de cálculo).

Ejemplo: @myFunction

Argumentos de salida

contraer todo

Datos numéricos, devueltos como matriz de valores double. El arreglo no contiene nada de información de líneas de encabezado o de filas o columnas externas con datos no numéricos. Los datos de texto de las filas y columnas internas de una hoja de cálculo se muestran como NaN en la salida num.

Datos de texto, devueltos como arreglo de celdas. Los valores numéricos de las filas y columnas internas de una hoja de cálculo se muestran como vectores de caracteres '' en txt.

Para archivos XLS en modo de importación basic, la salida txt contiene vectores de caracteres vacíos '' en lugar de columnas iniciales de datos numéricos que preceden a los datos de texto en la hoja de cálculo. En todos los demás casos, txt no contiene estas columnas adicionales.

Los valores indefinidos (como '#N/A') se muestran en la salida txt como '#N/A', excepto para archivos XLS en modo basic.

Datos numéricos y de texto, devueltos como arreglo de celdas.

En ordenadores con Excel para Windows, los valores indefinidos (como '#N/A') se muestran en la salida raw como 'ActiveX VT_ERROR:'. Para archivos XLSX, XLSM, XLTX y XLTM en otros ordenadores o en MATLAB Online, los valores indefinidos se muestran como '#N/A'.

Segunda salida de la función correspondiente a processFcn. El valor y el tipo de datos de custom vienen definidos por la función.

Limitaciones

  • xlsread lee solo caracteres ASCII de 7 bits.

  • xlsread no admite rangos no contiguos.

  • Si su ordenador no dispone de Excel para Windows o si está utilizando MATLAB Online, xlsread opera automáticamente en el modo de importación basic.

  • En plataformas Linux® y Mac, xlsread no puede abrir archivos de hojas de cálculo escritas por la función writetable.

Algoritmos

  • xlsread importa texto con formato que representa fechas (como '10/31/96'), excepto cuando importa en el modo basic.

Historial de versiones

Introducido antes de R2006a

contraer todo

R2019a: xlsread no se recomienda.

xlsread no se recomienda. En su lugar, utilice readtable, readmatrix o readcell. No se prevé eliminar xlsread.

A partir de la versión R2019a, importe los datos de la hoja de cálculo como tabla, matriz o arreglo de celdas utilizando readtable, readmatrix o readcell, respectivamente. Las funciones readtable, readmatrix y readcell tienen estas ventajas frente a la función xlsread:

  • Mejor compatibilidad y rendimiento entre plataformas

  • Detección automática del formato y de los tipos de los datos

  • Capacidad de utilizar opciones de importación para controlar el proceso de importación de datos, incluida la gestión de errores y de datos ausentes

Esta tabla muestra usos típicos de xlsread y cómo actualizar el código para que utilice readtable, readmatrix o readcell en su lugar.

No recomendado

Recomendado

Leer los datos de una hoja de cálculo como matriz utilizando xlsread:

M = xlsread(filename)

Leer los datos de una hoja de cálculo como tabla:

T = readtable(filename)
Sin embargo, si desea seguir leyendo los datos como matriz, utilice:
M = readmatrix(filename)

Leer los datos de una hoja de cálculo como arreglo de celdas utilizando xlsread:

[~,~,C] = xlsread(filename)

Importar los datos de una hoja de cálculo como tabla:

T = readtable(filename)
Sin embargo, si desea seguir importando los datos como arreglo de celdas, utilice:
C = readcell(filename)

Leer una hoja y un rango específicos como matriz utilizando xlsread:

M = xlsread(filename,sheet,range)

Leer una hoja y un rango específicos como tabla:

T = readtable(filename,'Sheet',sheet,'Range',range)
Sin embargo, si desea seguir leyendo los datos como matriz, utilice:
M = readmatrix(filename,'Sheet',sheet,'Range',range)

Leer una hoja y un rango específicos como arreglo de celdas utilizando xlsread:

[~,~,C] = xlsread(filename,sheet,range)

Leer una hoja y un rango específicos como tabla:

T = readtable(filename,'Sheet',sheet,'Range',range)
Sin embargo, si desea seguir leyendo los datos como arreglo de celdas:
C = readcell(filename,'Sheet',sheet,'Range',range)