xlsread

(Не рекомендуемый) Чтение файла электронной таблицы Microsoft Excel

xlsread не рекомендуется. Использовать readtable, readmatrix, или readcell вместо этого. Для получения дополнительной информации см. раздел Вопросов совместимости.

Описание

пример

num = xlsread(filename) считывает первый лист в Microsoft® Excel® книга электронных таблиц с именем filename и возвращает числовые данные в матрице.

num = xlsread(filename,sheet) считывает указанный лист.

пример

num = xlsread(filename,xlRange) читается из заданной области первого листа в книге. Используйте синтаксис области значений Excel, например 'A1:C3'.

пример

num = xlsread(filename,sheet,xlRange) считывает из заданного листа и области значений.

num = xlsread(filename,sheet,xlRange,'basic') считывает данные из электронной таблицы в basic режим импорта. Если на вашем компьютере нет Excel для Windows® или если вы используете MATLAB® Online™, xlsread автоматически работает в basic режим импорта, поддерживающий файлы XLS, XLSX, XLSM, XLTX и XLTM.

Если вы не задаете все аргументы, используйте пустые символьные векторы '' , как заполнители, для примера, num = xlsread(filename,'','','basic').

пример

[num,txt,raw] = xlsread(___) дополнительно возвращает текстовые поля в массиве ячеек txt, и числовые и текстовые данные в массиве ячеек raw, с использованием любого из входных параметров в предыдущих синтаксисах.

___ = xlsread(filename,-1) открывает окно Excel для интерактивного выбора данных. Выберите лист, перетащите мышь в нужную область значений и нажмите OK. Этот синтаксис поддерживается только на компьютерах с установленным программным обеспечением Microsoft Excel.

пример

[num,txt,raw,custom] = xlsread(filename,sheet,xlRange,'',processFcn), где processFcn является указателем на функцию, читает из электронной таблицы, вызывает processFcn на данных и возвращает конечные результаты в виде числовых данных в массиве num. The xlsread функция возвращает текстовые поля в массиве ячеек txt, как числовые, так и текстовые данные в массиве ячеек raw, и второй выход от processFcn в массиве custom. The xlsread функция не изменяет данные, хранящиеся в электронной таблице. Этот синтаксис поддерживается только на компьютерах Windows с программным обеспечением Excel.

Примеры

свернуть все

Создайте файл Excel с именем myExample.xlsx.

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

Sheet1 от myExample.xlsx содержит:

   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);

Входные параметры

свернуть все

Имя файла, заданное как вектор символов или строка. Если расширение не включено, xlsread ищет файл с заданным именем и поддерживаемым расширением Excel. xlsread можно считать данные, сохраненные в файлах, которые в данный момент открыты в Excel для Windows.

Пример: 'myFile.xlsx' или "myFile.xlsx"

Типы данных: char | string

Лист, заданный как один из следующих:

  • Вектор символов, содержащая имя листа. Имя не может содержать двоеточие (:). Для определения имен листов в файле электронной таблицы используйте xlsfinfo. Для файлов XLS в basic режим, sheet учитывает регистр.

  • Положительное целое число, указывающее на индекс листа. Эта опция не поддерживается для файлов XLS в basic режим.

Типы данных: char | string | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Прямоугольная область значений, заданный как вектор символов или строка.

Задайте xlRange использование двух противоположных углов, которые определяют считываемую область. Для примера, 'D2:H4' представляет прямоугольную область 3 на 5 между двумя углами D2 и H4 на листе. The xlRange вход не чувствителен к регистру и использует стиль ссылки A1 Excel (см. справку Excel).

Выбор области значений не поддерживается при чтении файлов XLS в basic режим. В этом случае используйте '' вместо xlRange.

Если вы не задаете sheet, затем xlRange должны включать оба угла и символ двоеточия, даже для одной камеры (например 'D2:D2'). В противном случае xlsread интерпретирует вход как имя листа (например 'sales' или 'D2').

Если вы задаете sheet, затем xlRange:

  • Не нужно включать двоеточие и противоположный угол, чтобы описать одну камеру.

  • Может ссылаться на именованную область значений, определенный в файле Excel (см. справку Excel).

Когда заданный xlRange перекрывает объединенные камеры:

  • На компьютерах Windows с Excel, xlsread расширяет область значений, включая все объединенные камеры.

  • На компьютерах без Excel для Windows, xlsread Возвраты данные только для заданной области, с пустыми или NaN значения для объединенных камер.

Типы данных: char | string

Флаг для запроса чтения basic mode, заданный как вектор символов или строка, 'basic'.

basic режим по умолчанию для компьютеров без Excel для Windows. В basic режим, xlsread:

  • Чтение только файлов XLS, XLSX, XLSM, XLTX и XLTM.

  • Не поддерживает xlRange входы при чтении файлов. В этом случае используйте '' вместо xlRange.

  • Не поддерживает входы указателя на функцию.

  • Импорт всех дат в виде серийных номеров дат Excel. Серийные номера дат Excel используют другую ссылочную дату, чем номера дат MATLAB.

Типы данных: char | string

Указатель на пользовательскую функцию. Этот аргумент поддерживается только на компьютерах Windows с программным обеспечением Excel. xlsread читает из электронной таблицы, выполняет функцию на копии данных и возвращает конечные результаты. xlsread не изменяет данные, хранящиеся в электронной таблице.

Когда xlsread вызывает пользовательскую функцию, она передает интерфейс области значений из приложения Excel, чтобы предоставить доступ к данным. Пользовательская функция должна включать этот интерфейс как в качестве входа, так и в качестве выходного аргумента. (См. «Выполнение функции на листе»)

Пример: @myFunction

Выходные аргументы

свернуть все

Числовые данные, возвращенные как матрица double значения. Массив не содержит никакой информации из линий заголовка, или из внешних строк или столбцов, которые содержат нечисловые данные. Текстовые данные во внутренних строках и столбцах электронных таблиц отображаются следующим NaN в num выход.

Текстовые данные, возвращенные как массив ячеек. Числовые значения во внутренних строках и столбцах электронных таблиц отображаются как пустые символьные векторы, '', в txt.

Для файлов XLS в basic режим импорта, txt выход содержит пустые символьные векторы, '', вместо начальных столбцов числовых данных, которые предшествуют текстовым данным в электронной таблице. Во всех других случаях txt не содержит эти дополнительные столбцы.

Неопределенные значения (такие как '#N/A') появляются в txt выход как '#N/A', за исключением XLS- файлов в basic режим.

Числовые и текстовые данные из листа, возвращенные как массив ячеек.

На компьютерах с Excel для Windows неопределенные значения (такие как '#N/A') появляются в raw выход как 'ActiveX VT_ERROR:'. Для файлов XLSX, XLSM, XLTX и XLTM на других компьютерах или в MATLAB Online неопределенные значения отображаются следующим '#N/A'.

Второй выход функции, соответствующей processFcn. Значение и тип данных custom определяются функцией.

Ограничения

  • xlsread считывает только 7-битные символы ASCII.

  • xlsread не поддерживает несмежные области значений.

  • Если на вашем компьютере нет Excel для Windows или используется MATLAB Online, xlsread автоматически работает в basic режим импорта.

  • На Linux® и платформы Mac, xlsread невозможно открыть файлы электронной таблицы, написанные writetable функция.

Алгоритмы

  • xlsread импортирует форматированный текст, представляющий даты (например '10/31/96'), кроме случаев импорта в basic режим.

Вопросы совместимости

расширить все

Не рекомендуемый запуск в R2019a

Представлено до R2006a