Main Content

xlsread

(권장되지 않음) 스프레드시트 파일 읽어 들이기

xlsread는 권장되지 않습니다. 대신 readtable, readmatrix 또는 readcell을 사용하십시오. 자세한 내용은 호환성 관련 고려 사항을 참조하십시오.

설명

예제

num = xlsread(filename)filename이라는 Microsoft® Excel® 스프레드시트 통합 문서의 첫 번째 워크시트를 읽어 들이고 숫자형 데이터를 행렬로 반환합니다.

num = xlsread(filename,sheet)는 지정된 워크시트를 읽어 들입니다.

예제

num = xlsread(filename,xlRange)는 통합 문서의 첫 번째 워크시트에서 지정된 범위를 읽어 들입니다. Excel 범위 구문을 사용합니다(예: 'A1:C3').

예제

num = xlsread(filename,sheet,xlRange)는 지정된 워크시트에서 지정된 범위를 읽어 들입니다.

num = xlsread(filename,sheet,xlRange,'basic')basic 가져오기 모드로 스프레드시트에서 데이터를 읽어 들입니다. 컴퓨터에 Windows®용 Excel이 설치되어 있지 않거나 MATLAB® Online™을 사용하고 있는 경우, 자동으로 xlsread는 XLS, XLSX, XLSM, XLTX, XLTM 파일을 지원하는 basic 가져오기 모드에서 동작합니다.

일부 인수를 지정하지 않은 경우, 빈 문자형 벡터 ''을 자리 표시자로 사용합니다(예: num = xlsread(filename,'','','basic')).

예제

[num,txt,raw] = xlsread(___)는 위에 열거된 구문에 나와 있는 입력 인수 중 하나를 사용하여 추가적으로 텍스트 필드를 셀형 배열 txt로 반환하고 숫자형 데이터와 텍스트 데이터를 모두 셀형 배열 raw로 반환합니다.

___ = xlsread(filename,-1)은 Excel 창을 열어 대화형 방식으로 데이터를 선택하도록 합니다. 워크시트를 선택하고 원하는 범위에서 마우스를 끌어서 놓은 후 확인을 클릭합니다. 이 구문은 Microsoft Excel 소프트웨어가 설치된 Windows 컴퓨터에서만 지원됩니다.

예제

[num,txt,raw,custom] = xlsread(filename,sheet,xlRange,'',processFcn)(여기서 processFcn은 함수 핸들)은 스프레드시트에서 데이터를 읽어 들이고, 함수 핸들 processFcn을 데이터에서 호출하여, 최종 결과를 숫자형 데이터로 배열 num에 반환합니다. xlsread 함수는 텍스트 필드를 셀형 배열 txt로 반환하고, 숫자형 데이터와 텍스트 데이터를 모두 셀형 배열 raw로 반환하고, processFcn의 두 번째 출력값을 배열 custom으로 반환합니다. xlsread 함수는 스프레드시트에 저장된 데이터를 변경하지 않습니다. 이 구문은 Excel 소프트웨어가 설치된 Windows 컴퓨터에서만 지원됩니다.

예제

모두 축소

myExample.xlsx 이름의 Excel 파일을 만듭니다.

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

myExample.xlsxSheet1에는 다음이 포함되어 있습니다.

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

첫 번째 워크시트에서 숫자형 데이터를 읽습니다.

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

위 예제에 나온 Excel 파일에서 데이터의 특정 범위를 읽습니다.

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

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

첫 번째 예제에 나온 Excel 파일에서 두 번째 열을 읽습니다.

filename = 'myExample.xlsx';

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

성능을 높이려면 범위에 행 번호를 포함시키십시오(예: 'B1:B3').

첫 번째 예제에 나온 Excel 파일에서 숫자형 데이터, 텍스트 데이터, 결합된 데이터를 요청합니다.

[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]

편집기에서, 워크시트의 데이터를 처리하는 함수를 만듭니다. 이 예제의 경우, 범위 [0.2,0.8]을 벗어난 값을 0.2 또는 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

명령 창에서, 임의의 데이터를 myExample.xlsx에 추가합니다.

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

MyData 이름의 워크시트에 0 ~ 1 범위의 값을 포함시킵니다.

워크시트에서 데이터를 읽고 범위 [0.2,0.8]을 벗어난 값을 재설정합니다. 시트 이름은 지정하고, xlRange 입력값 및 'basic' 입력값으로 '' 자리 표시자를 사용합니다.

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

워크시트에서 함수를 실행하고 사용자 지정 인덱스 출력값을 표시합니다.

편집기에서, 변경된 요소의 인덱스(사용자 지정 출력값)를 반환하도록 이전 예제의 setMinMax 함수를 수정합니다.

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

워크시트 MyData에서 데이터를 읽고 사용자 지정 인덱스 출력값 idx를 요청합니다.

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

입력 인수

모두 축소

파일 이름으로, 문자형 벡터 또는 string형으로 지정됩니다. 확장자를 포함하지 않으면, xlsread는 지정된 이름과 지원되는 Excel 확장자를 사용하여 파일을 검색합니다. xlsread는 현재 열려 있는 Windows용 Excel 파일의 저장 데이터를 읽을 수 있습니다.

예: 'myFile.xlsx' 또는 "myFile.xlsx"

데이터형: char | string

워크시트로, 다음 중 하나로 지정됩니다.

  • 워크시트 이름을 포함하는 문자형 벡터 또는 string형. 이름에는 콜론(:)을 사용할 수 없습니다. 스프레트시트 파일에서 시트의 이름을 확인하려면 xlsfinfo를 사용하십시오. basic 모드의 XLS 파일의 경우 sheet는 대/소문자를 구분합니다.

  • 워크시트 인덱스를 나타내는 양의 정수. 이 옵션은 XLS 파일의 경우 basic 모드에서 지원되지 않습니다.

데이터형: char | string | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

사각 범위로, 문자형 벡터나 string형으로 지정됩니다.

읽을 범위를 정의하는 2개의 끝 지점을 사용하여 xlRange를 지정합니다. 예를 들어, 'D2:H4'는 워크시트에서 2개의 끝 지점 D2H4 사이에 있는 3×5 사각 범위를 나타냅니다. xlRange 입력값은 대/소문자를 구분하지 않으며 Excel A1 참조 스타일을 사용합니다(Excel 도움말 참조).

basic 모드에서 XLS 파일을 읽는 경우 범위 선택이 지원되지 않습니다. 이 경우 xlRange 대신 ''를 사용하십시오.

sheet를 지정하지 않으면 xlRange는 단일 셀의 경우에도 양쪽 끝 지점과 콜론 문자를 포함해야 합니다(예: 'D2:D2'). 그렇지 않으면, xlsread는 입력값을 워크시트 이름(예: 'sales' 또는 'D2')으로 해석합니다.

sheet를 지정하는 경우 xlRange

  • 단일 셀을 설명하기 위해 콜론과 끝 지점을 포함하지 않아도 됩니다.

  • Excel 파일에서 정의한 명명된 범위를 참조할 수 있습니다(Excel 도움말 참조).

지정된 xlRange가 병합된 셀과 겹칠 때,

  • Excel이 설치된 Windows 컴퓨터의 경우, xlsread는 병합된 모든 셀을 포함하도록 범위를 확장합니다.

  • Windows용 Excel이 설치되지 않은 컴퓨터의 경우 xlsread는 지정된 범위에 대한 데이터만 반환하고 병합된 셀에 대해서는 빈 값이나 NaN 값을 반환합니다.

데이터형: char | string

basic 모드에서 읽기를 요청하는 플래그로, 문자형 벡터 또는 string형 'basic'으로 지정됩니다.

basic 모드는 Windows용 Excel이 설치되어 있지 않은 컴퓨터를 위한 디폴트 값입니다. basic 모드에서 xlsread

  • XLS, XLSX, XLSM, XLTX, XLTM 파일만 읽습니다.

  • XLS 파일을 읽을 때 xlRange 입력값을 지원하지 않습니다. 이 경우 xlRange 대신 ''를 사용하십시오.

  • 함수 핸들 입력값을 지원하지 않습니다.

  • 모든 날짜를 Excel 날짜 일련 번호 값으로 가져옵니다. Excel 날짜 일련 번호 값은 MATLAB 날짜 번호 값과 다른 기준 날짜를 사용합니다.

데이터형: char | string

사용자 지정 함수에 대한 핸들입니다. 이 인수는 Excel 소프트웨어가 설치된 Windows 컴퓨터에서만 지원됩니다. xlsread는 스프레드시트에서 읽고, 데이터의 복사본에서 함수를 실행하고, 최종 결과를 반환합니다. xlsread는 스프레드시트에 저장된 데이터를 변경하지 않습니다.

xlsread가 사용자 지정 함수를 호출하면 processFcn은 Excel 애플리케이션의 범위 인터페이스를 전달하여 데이터에 대한 액세스를 제공합니다. 사용자 지정 함수는 이 인터페이스를 입력 인수와 출력 인수에 모두 포함해야 합니다. 워크시트에서 함수 실행 항목을 참조하십시오.

예: @myFunction

출력 인수

모두 축소

숫자형 데이터로, double형 값으로 구성된 행렬로 반환됩니다. 이 배열은 헤더 라인 정보나, 숫자형이 아닌 데이터를 포함하는 외부 행 또는 열의 정보를 포함하지 않습니다. 내부 스프레드시트 행과 열에 있는 텍스트 데이터는 num 출력값에 NaN으로 표시됩니다.

텍스트 데이터로, 셀형 배열로 반환됩니다. 내부 스프레드시트 행과 열에 있는 숫자형 값은 txt 출력값에 빈 문자형 벡터, ''로 표시됩니다.

basic 가져오기 모드의 XLS 파일의 경우, txt 출력값은 스프레드시트에서 텍스트 데이터 앞에 오는, 숫자형 데이터로 구성된 선행 열에 대해 빈 문자형 벡터 ''를 포함합니다. 다른 모든 경우에서, txt는 이러한 추가 열을 포함하지 않습니다.

basic 모드의 XLS 파일을 제외하고, 정의되지 않은 값(예: '#N/A')은 txt 출력값에 '#N/A'로 표시됩니다.

워크시트의 숫자형 데이터나 텍스트 데이터로, 셀형 배열로 반환됩니다.

Windows용 Excel이 설치된 컴퓨터에서는 정의되지 않은 값(예: '#N/A')이 raw 출력값에 'ActiveX VT_ERROR:'로 표시됩니다. Windows용 Excel이 설치되지 않은 컴퓨터나 MATLAB Online에서는 XLSX, XLSM, XLTX, XLTM 파일의 경우 정의되지 않은 값이 '#N/A'로 표시됩니다.

processFcn에 대응하는 함수의 두 번째 출력값. custom의 값과 데이터형은 함수에 의해 결정됩니다.

제한 사항

  • xlsread는 7비트 ASCII 문자만 읽습니다.

  • xlsread는 비연속 범위를 지원하지 않습니다.

  • 컴퓨터에 Windows용 Excel이 설치되어 있지 않거나 MATLAB Online을 사용하고 있는 경우, 자동으로 xlsreadbasic 가져오기 모드에서 동작합니다.

  • Linux® 플랫폼과 Mac 플랫폼에서는 xlsreadwritetable 함수로 쓴 스프레드시트 파일을 열 수 없습니다.

알고리즘

  • basic 모드에서 가져오는 경우가 아니라면 xlsread는 날짜를 표현하는 서식 지정된 텍스트(예: '10/31/96')를 가져옵니다.

버전 내역

R2006a 이전에 개발됨

모두 축소

R2019a: xlsread는 권장되지 않음

xlsread는 권장되지 않습니다. 대신 readtable, readmatrix 또는 readcell을 사용하십시오. xlsread를 제거할 계획은 없습니다.

R2019a부터, 스프레드시트 데이터를 테이블, 행렬 또는 셀형 배열로 가져올 때는 각각 readtable, readmatrix, readcell을 사용하십시오. readtable, readmatrix, readcell 함수는 xlsread 함수에 비해 다음과 같은 이점이 있습니다.

  • 성능 및 크로스 플랫폼 지원 기능이 더 우수함

  • 데이터 형식 및 데이터형의 자동 감지

  • 가져오기 옵션을 사용하여 데이터 가져오기 프로세스 제어(오류 및 누락된 데이터 처리 포함)

다음 표에서는 xlsread의 일반적인 사용법과 코드에서 대신 readtable, readmatrix 또는 readcell을 사용하도록 업데이트하는 방법을 보여줍니다.

권장되지 않음

권장됨

xlsread를 사용하여 스프레드시트 데이터를 행렬로 읽어 들이기:

M = xlsread(filename)

스프레드시트 데이터를 테이블로 읽어 들이기:

T = readtable(filename)
단, 기존처럼 데이터를 행렬로 읽어 들이려면 다음을 사용:
M = readmatrix(filename)

xlsread를 사용하여 스프레드시트 데이터를 셀형 배열로 읽어 들이기:

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

스프레드시트 데이터를 테이블로 가져오기:

T = readtable(filename)
단, 기존처럼 데이터를 셀형 배열로 가져오려면 다음을 사용:
C = readcell(filename)

xlsread를 사용하여 특정 시트 및 범위를 행렬로 읽어 들이기:

M = xlsread(filename,sheet,range)

특정 시트 및 범위를 테이블로 읽어 들이기:

T = readtable(filename,'Sheet',sheet,'Range',range)
단, 기존처럼 데이터를 행렬로 읽어 들이려면 다음을 사용:
M = readmatrix(filename,'Sheet',sheet,'Range',range)

xlsread를 사용하여 특정 시트 및 범위를 셀형 배열로 읽어 들이기:

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

특정 시트 및 범위를 테이블로 읽어 들이기:

T = readtable(filename,'Sheet',sheet,'Range',range)
단, 기존처럼 데이터를 셀형 배열로 읽어 들이려면 다음을 사용:
C = readcell(filename,'Sheet',sheet,'Range',range)