xlsread

Считайте файл электронной таблицы Microsoft Excel

Синтаксис

num = xlsread(filename)
num = xlsread(filename,sheet)
num = xlsread(filename,xlRange)
num = xlsread(filename,sheet,xlRange)
num = xlsread(filename,sheet,xlRange,'basic')
[num,txt,raw] = xlsread(___)
___ = xlsread(filename,-1)
[num,txt,raw,custom] = xlsread(filename,sheet,xlRange,'',processFcn)

Описание

пример

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, чтобы в интерактивном режиме выбрать данные. Выберите рабочий лист, перетащите мышью мышь в области значений, которую вы хотите и нажимаете ОК. Этот синтаксис поддержан только на компьютерах 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]. Задайте имя листа, но используйте '' в качестве заполнителей для входных параметров 'basic' и xlRange.

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 | представляет в виде строки | единственный | дважды | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

Задайте xlRange с помощью двух противостоящих углов, которые задают область, чтобы читать. Например, 'D2:H4' представляет прямоугольную область 3 на 5 между этими двумя углами D2 и H4 на рабочем листе. Входной параметр xlRange не является чувствительным к регистру, и использует стиль ссылки Excel A1 (см. справку 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.

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

Была ли эта тема полезной?