Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

xlsread

Leer un archivo de hoja de cálculo de Microsoft Excel

Descripción

ejemplo

num = xlsread(filename) lee la primera hoja de cálculo del libro de hojas de cálculo de Microsoft® Excel® denominado 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 el rango especificado de la primera hoja de cálculo del libro. Utilice la sintaxis de rangos de Excel, como 'A1:C3'.

ejemplo

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

num = xlsread(filename,sheet,xlRange,'basic') lee los datos de la hoja de cálculo en el modo de importación basic. Si el equipo no tiene Excel para Windows®, xlsread opera automáticamente en el modo de importación basic, que admite 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 del array de celdas txt, y los datos numéricos y de texto del array de celdas raw, utilizando cualquiera de los argumentos de entrada de las sintaxis anteriores.

___ = xlsread(filename,-1) abre una ventana de 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 Aceptar. Esta sintaxis solo se admite en equipos 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 la hoja de cálculo, llama a processFcn en los datos y devuelve los resultados finales como datos numéricos en un array num. La función xlsread devuelve los campos de texto del array de celdas txt, tanto los datos numéricos como los de texto del array de celdas raw y la segunda salida de processFcn en el array custom. La función xlsread no cambia los datos almacenados en la hoja de cálculo. Esta sintaxis solo se admite en equipos Windows con el software Excel.

Ejemplos

contraer todo

Cree un archivo de Excel denominado myExample.xlsx.

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

Sheet1 de myExample.xlsx contiene:

   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 específico de datos del archivo de Excel del 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 del primer ejemplo.

filename = 'myExample.xlsx';

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

Para obtener un mejor rendimiento, incluya los números de fila del rango, como 'B1:B3'.

Solicite los datos numéricos, los datos de texto y los datos combinados del archivo de Excel del 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 rango [0.2,0.8] para 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, agregue datos aleatorios a myExample.xlsx.

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

La hoja de cálculo denominada MyData contiene valores que van de 0 a 1.

Lea los datos de la hoja de cálculo y restablezca los valores fuera del rango [0.2,0.8]. Especifique el nombre de la hoja, pero utilice '' como marcadores de posición para las entradas de 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 anterior para devolver los índices de los elementos modificados (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 un vector de caracteres o una cadena. Si no incluye una extensión, xlsread busca un archivo con el nombre especificado y una extensión admitida por Excel. xlsread puede leer los datos guardados en los archivos que están abiertos actualmente en Excel para Windows.

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

Tipos de datos: char | string

Hoja de cálculo, especificada de una de las siguientes formas:

  • Cadena o vector de caracteres que contiene 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 los archivos XLS en el modo basic, sheet distingue entre mayúsculas y minúsculas.

  • Entero positivo que indica el índice de la hoja de cálculo. Esta opción no es compatible con los archivos XLS en el modo basic.

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

Rango rectangular, especificado como un vector de caracteres o una cadena.

Especifique xlRange mediante dos esquinas opuestas que definan la región que se 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 la Ayuda de Excel).

La selección de rangos no se admite al leer archivos XLS en el 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 sola celda (como 'D2:D2'). De lo contrario, xlsread interpreta la entrada como un nombre de hoja de cálculo (como 'sales' o 'D2').

Si especifica sheet, entonces xlRange:

  • No necesita incluir dos puntos y una esquina opuesta para describir una sola celda.

  • Puede hacer referencia a un rango con nombre definido en el archivo de Excel (consulte la Ayuda de Excel).

Cuando el xlRange especificado se superpone a las celdas combinadas:

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

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

Tipos de datos: char | string

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

El modo basic es el valor predeterminado para los equipos sin Excel para Windows. En el modo basic, xlsread:

  • Lee solo los archivos XLS, XLSX, XLSM, XLTX y XLTM.

  • No admite una entrada xlRange al leer archivos XLS. En este caso, utilice '' en lugar de xlRange.

  • No admite entradas de la función handle.

  • 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 diferente que los números de fecha de MATLAB®.

Tipos de datos: char | string

Identificador de una función personalizada. Este argumento solo se admite en los equipos Windows con el software Excel. xlsread lee la hoja de cálculo, ejecuta la 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 como argumento de entrada y 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 una matriz de valores double. El array no contiene información de líneas de encabezado ni de filas o columnas externas que contengan datos no numéricos. Los datos de texto de las filas y columnas internas de la hoja de cálculo aparecen como NaN en la salida num.

Datos de texto, devueltos como un array de celdas. Los valores numéricos de las filas y columnas internas de la hoja de cálculo aparecen como vectores de caracteres vacíos, '', en txt.

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

Los valores no definidos (como '#N/A') aparecen en la salida txt como '#N/A', a excepción de los archivos XLS en el modo basic.

Datos numéricos y de texto de la hoja de cálculo, devueltos como un array de celdas.

En equipos con Excel para Windows, los valores sin definir (como '#N/A') aparecen en la salida raw como 'ActiveX VT_ERROR:'. Para los archivos XLSX, XLSM, XLTX y XLTM en otros equipos, los valores no definidos aparecen como '#N/A'.

Segunda salida de la función correspondiente a processFcn. La función determina el valor y el tipo de datos de custom.

Limitaciones

  • xlsread solo lee caracteres ASCII de 7 bits.

  • xlsread no admite rangos no contiguos.

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

Algoritmos

  • xlsread importa el texto con formato que representa las fechas (como '10/31/96'), excepto en el modo basic y en los equipos sin Excel para Windows.

Introducido antes de R2006a