exponenta event banner

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. Этот синтаксис поддерживается только на компьютерах Windows с установленным программным обеспечением Microsoft Excel.

пример

[num,txt,raw,custom] = xlsread(filename,sheet,xlRange,'',processFcn), где processFcn является дескриптором функции, считывает из электронной таблицы, вызывает processFcn для данных и возвращает окончательные результаты в виде числовых данных в массиве num. xlsread функция возвращает текстовые поля в массиве ячеек txt, как числовые, так и текстовые данные в массиве ячеек raw, и второй вывод из processFcn в массиве custom. 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 на листе. 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 режим, заданный как символьный вектор или строка, 'basic'.

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

  • Считывает только файлы XLS, XLSX, XLSM, XLTX и XLTM.

  • Не поддерживает xlRange при чтении XLS-файлов. В этом случае используйте '' вместо 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