writecell

Запишите массив ячеек в файл

Описание

пример

writecell(C) массив ячеек записей C к файлу разделенного текста запятой. Имя файла является именем рабочей области массива ячеек, добавленного с дополнительным .txt. Если writecell не может создать имя файла из входного имени массива ячеек, затем это пишет в файл cell.txt.

Каждый столбец каждой переменной в C становится столбцом в выходном файле. writecell функционируйте перезаписывает любой существующий файл.

пример

writecell(C,filename) записи к файлу с именем и расширением заданы filename.

writecell определяет формат файла на основе заданного расширения. Расширение должно быть одним из следующего:

  • .txt, .dat, или .csv для файлов разделенного текста

  • .xls, .xlsm, или .xlsx для файлов электронной таблицы Excel®

  • .xlsb для файлов электронной таблицы Excel, поддержанных в системах с Excel для Windows®

пример

writecell(___,Name,Value) пишет массив ячеек в файл с дополнительными опциями, заданными одним или несколькими Name,Value парные аргументы и могут включать любой из входных параметров в предыдущих синтаксисах.

Примеры

свернуть все

Создайте массив ячеек, запишите его в разделенный от запятой текстовый файл, и затем запишите массив ячеек в другой текстовый файл с различным символом-разделителем.

Создайте простой массив ячеек в рабочей области.

C =  {1,2,3;
     'text',datetime('today'),hours(1)}
C = 2×3 cell array
    {[   1]}    {[          2]}    {[   3]}
    {'text'}    {[09-Jan-2019]}    {[1 hr]}

Запишите массив ячеек в файл разделенного текста запятой и отобразите содержимое файла. writecell функционируйте выводит текстовый файл под названием C.txt.

writecell(C)
type 'C.txt'
1,2,3
text,09-Jan-2019,1 hr

Чтобы записать тот же массив ячеек в текстовый файл с различным символом-разделителем, используйте 'Delimiter' пара "имя-значение".

writecell(C,'C_tab.txt','Delimiter','tab')
type 'C_tab.txt'
1	2	3
text	09-Jan-2019	1 hr

Создайте массив ячеек, запишите его в файл электронной таблицы, и затем считайте и отобразите содержимое файла.

Создайте массив ячеек в рабочей области.

C =  {1,2,3;
     'text',datetime('today'),hours(1)}
C = 2×3 cell array
    {[   1]}    {[          2]}    {[   3]}
    {'text'}    {[09-Jan-2019]}    {[1 hr]}

Запишите массив ячеек в файл электронной таблицы.

writecell(C,'C.xls')

Считайте и отобразите матрицу от C.xls.

readcell('C.xls')
ans = 2×3 cell array
    {[   1]}    {[          2]}    {[   3]}
    {'text'}    {[09-Jan-2019]}    {'1 hr'}

Создайте массив ячеек и запишите его в заданный лист и область значений в файле электронной таблицы.

Создайте массив ячеек в рабочей области.

C =  {1,2,3;
     'text',datetime('today'),hours(1)}
C = 2×3 cell array
    {[   1]}    {[          2]}    {[   3]}
    {'text'}    {[09-Jan-2019]}    {[1 hr]}

Запишите массив ячеек в файл C.xls, во втором рабочем листе в файле, запускающемся в третьей строке.

writecell(C,'C.xls','Sheet',2,'Range','A3:C5')

Считайте и отобразите массив ячеек.

readcell('C.xls','Sheet',2,'Range','A3:C5')
ans = 2×3 cell array
    {[   1]}    {[          2]}    {[   3]}
    {'text'}    {[09-Jan-2019]}    {'1 hr'}

Добавьте массив ячеек к нижней части файла электронной таблицы, содержащего существующие данные.

Создайте два массива ячеек в рабочей области.

C =  {1,2,3;
     'text',datetime('today'),hours(1)}
C=2×3 cell array
    {[   1]}    {[          2]}    {[   3]}
    {'text'}    {[23-Mar-2021]}    {[1 hr]}

rgb = {'red','green','blue'}
rgb = 1x3 cell
    {'red'}    {'green'}    {'blue'}

Запишите массиву ячеек C в файл электронной таблицы по имени C.xls.

writecell(C,'C.xls')

Добавьте массив ячеек rgb ниже существующих данных в файле электронной таблицы.

writecell(rgb,'C.xls','WriteMode','append')

Считайте и отобразите массив ячеек.

readcell('C.xls')
ans=3×3 cell array
    {[   1]}    {[          2]}    {[   3]}
    {'text'}    {[23-Mar-2021]}    {'1 hr'}
    {'red' }    {'green'      }    {'blue'}

Добавьте массивы ячеек к нижней части текстового файла, содержащего существующие данные.

Создайте три массива ячеек в рабочей области.

states = {"Massachusetts","New York","Maryland","Virginia"}
states=1×4 cell array
    {["Massachusetts"]}    {["New York"]}    {["Maryland"]}    {["Virginia"]}

stateBird = {"Black-capped chickadee","Eastern bluebird",...
    "Baltimore oriole","Cardinal"}
stateBird=1×4 cell array
  Columns 1 through 3

    {["Black-capped..."]}    {["Eastern blue..."]}    {["Baltimore or..."]}

  Column 4

    {["Cardinal"]}

stateFlower = {"Trailing arbutus","Rose",...
    "Black-eyed Susan","Flowering dogwood"}
stateFlower=1×4 cell array
  Columns 1 through 3

    {["Trailing arb..."]}    {["Rose"]}    {["Black-eyed S..."]}

  Column 4

    {["Flowering do..."]}

Запишите массиву ячеек states к файлу states.txt. Затем запишите массивам stateBird и stateFlower ниже существующих записей в текстовом файле.

writecell(states,'states.txt')
writecell(stateBird,'states.txt','WriteMode','append')
writecell(stateFlower,'states.txt','WriteMode','append')

Считайте и отобразите массив ячеек.

readcell('states.txt')
ans = 3x4 cell
  Columns 1 through 3

    {'Massachusetts'    }    {'New York'        }    {'Maryland'        }
    {'Black-capped c...'}    {'Eastern bluebird'}    {'Baltimore oriole'}
    {'Trailing arbutus' }    {'Rose'            }    {'Black-eyed Susan'}

  Column 4

    {'Virginia'         }
    {'Cardinal'         }
    {'Flowering dogwood'}

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

свернуть все

Входные данные в виде массива ячеек.

Имя файла в виде вектора символов или строкового скаляра.

В зависимости от местоположения вы пишете в, filename может взять одну из следующих форм.

Местоположение

Форма

Текущая папка

Чтобы записать в текущую папку, задайте имя файла в filename.

Пример: 'myTextFile.csv'

Другие папки

Чтобы записать в папку, отличающуюся от текущей папки, задайте полное имя или относительный путь в filename.

Пример: 'C:\myFolder\myTextFile.csv'

Пример: 'myFolder\myExcelFile.xlsx'

Удаленное местоположение

Записать в удаленное местоположение, filename должен содержать полный путь файла, заданного как универсальный локатор ресурса (URL) формы:

scheme_name://path_to_file/my_file.ext

На основе удаленного местоположения, scheme_name может быть одно из значений в этой таблице.

Удаленное местоположениеscheme_name
Amazon S3™s3
Устройство хранения данных Windows Azure® Blobwasb, wasbs
HDFS™hdfs

Для получения дополнительной информации смотрите работу с Удаленными данными.

Пример: 's3://bucketname/path_to_file/my_file.xlsx'

  • Если filename включает расширение файла, затем функция записи определяет формат файла из расширения. В противном случае функция записи создает запятую, разделил текстовый файл и добавляет дополнительный .txt. В качестве альтернативы можно задать filename без расширения файла, и затем включают 'FileType' аргументы пары "имя-значение", чтобы указать на тип файла.

  • Если filename не существует, затем функция записи создает файл.

  • Если filename имя файла существующего текста, затем функция записи перезаписывает файл.

  • Если filename имя существующего файла электронной таблицы, затем функция записи пишет данные в заданное местоположение, но не перезаписывает значений вне области значений входных данных.

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

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'FileType',text указывает, что имена переменных не должны быть включены как первая строка выходного файла.
Текст и файлы электронной таблицы

свернуть все

Тип файла в виде разделенной запятой пары, состоящей из 'FileType' и вектор символов или строка, содержащая 'text' или 'spreadsheet'.

'FileType' пара "имя-значение" должна использоваться с filename входной параметр. Вы не должны задавать 'FileType' аргумент пары "имя-значение", если filename входной параметр включает стандартное расширение файла. Следующие стандартные расширения файла распознаны функцией записи:

  • .txt, .dat, или .csv для файлов разделенного текста

  • .xls, .xlsm, или .xlsx для файлов электронной таблицы Excel

  • .xlsb для файлов электронной таблицы Excel, поддержанных в системах с Excel для Windows

Пример: 'FileType','spreadsheet'

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

Локаль для записи дат в виде разделенной запятой пары, состоящей из 'DateLocale' и вектор символов или строковый скаляр. При записи datetime значения к файлу, используйте DateLocale задавать локаль в который writecell должен написать имена месяца и дня недели и сокращения. Вектор символов или строка принимают форму xx_YY, где xx строчный ISO 639-1 двухбуквенный код, указывающий на язык и YY прописная альфа ISO 3166-1 2 кода, указывающие на страну. Для списка общих значений для локали смотрите Locale аргумент пары "имя-значение" для datetime функция.

Функция записи игнорирует 'DateLocale' значение параметров каждый раз, когда даты могут быть записаны как отформатированные даты Excel.

Пример: 'DateLocale','ja_JP'

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

Режим Writing в виде разделенной запятой пары, состоящей из 'WriteMode' и вектор символов или строковый скаляр. Выберите режим записи на основе типа файла.

FileType

Режим записи

Текстовые файлы

  • 'overwrite' (значение по умолчанию) — Перезапись файл.

  • 'append' — Добавьте данные к файлу.

Если файл, который вы задали, не существует, то функция записи создает и записывает данные к новому файлу.

Файлы электронной таблицы

  • 'inplace' (значение по умолчанию) — Обновление только область значений занято входными данными. Функция записи не изменяет данных за пределами области значений, занятой входными данными.

    • Если вы не задаете лист, то функция записи пишет в первый лист.

  • 'overwritesheet' — Очистите заданный лист и запишите входные данные в очищенный лист.

    • Если вы не задаете лист, то функция записи очищает первый лист и пишет входные данные в него.

  • 'append' — Функция записи добавляет входные данные к нижней части занятой области значений заданного листа.

    • Если вы не задаете лист, то функция записи добавляет входные данные к нижней части занятой области значений первого листа.

  • 'replacefile' — Удалите все другие листы из файла, затем очистите и запишите входные данные в к заданному листу.

    • Если вы не задаете лист, то функция записи удаляет все другие листы из файла, и затем очищает и пишет входные данные в первый лист.

    • Если файл, который вы задали, не существует, то функция записи создает новый файл и пишет входные данные в первый лист.

  • Когда WriteVariableNames установлен в true, функция записи не поддерживает режим записи 'append'.

  • Для файлов электронной таблицы:

    • Когда режимом записи является 'append', функция записи не поддерживает Range параметр.

    • Если файл, который вы задали, не существует, то функция записи выполняет те же действия как 'replacefile'.

Пример: 'WriteMode','append'

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

Текстовые файлы только

свернуть все

Символ разделителя полей в виде разделенной запятой пары, состоящей из 'Delimiter' и вектор символов или строковый скаляр, содержащий один из этих спецификаторов:

Спецификатор

Разделитель полей

','

'comma'

Запятая. Это поведение по умолчанию.

' '

'space'

Пробел

'\t'

'tab'

Вкладка

';'

'semi'

Точка с запятой

'|'

'bar'

Вертикальная панель

Можно использовать 'Delimiter' пара "имя-значение" только для файлов разделенного текста.

Пример: 'Delimiter','space'

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

Индикатор для записи заключенного в кавычки текста в виде разделенной запятой пары, состоящей из 'QuoteStrings' и любой false или true. Если 'QuoteStrings' true, затем функция записи заключает текст в двойные кавычки и заменяет любые символы двойной кавычки, которые появляются как часть того текста с двумя символами двойной кавычки.

Можно использовать 'QuoteStrings' пара "имя-значение" только с файлами разделенного текста.

Схема кодировки символов, сопоставленная с файлом в виде разделенной запятой пары, состоящей из 'Encoding' и 'system' или имя схемы кодирования стандартного символа. Когда вы не задаете кодирования, функция записи использует UTF-8, чтобы записать файл.

Пример: 'Encoding','UTF-8' использование UTF-8 как кодирование.

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

Файлы электронной таблицы только

свернуть все

Рабочий лист, чтобы записать в в виде разделенной запятой пары, состоящей из 'Sheet' и вектор символов или строковый скаляр, содержащий имя рабочего листа или положительное целое число, указывающее на индекс рабочего листа. Имя рабочего листа не может содержать двоеточие (:). Чтобы определить имена листов в файле электронной таблицы, используйте sheets = sheetnames(filename). Для получения дополнительной информации смотрите sheetnames.

Задайте рабочий лист, чтобы записать в по наименованию или индекс:

  • имя — Если заданное имя листа не существует в файле, то функция записи добавляет новый лист в конце набора рабочего листа.

  • индекс — Если заданный индекс листа является индексом, больше, чем количество рабочих листов, то функция записи добавляет пустые листы до количества рабочих листов в рабочей книге, равняется индексу листа. Функция записи также генерирует предупреждение, указывающее, что она добавила новый рабочий лист.

Можно использовать 'Sheet' пара "имя-значение" только с файлами электронной таблицы.

Пример: 'Sheet',2

Пример: 'Sheet', 'MySheetName'

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

Прямоугольный фрагмент рабочего листа, чтобы записать в в виде разделенной запятой пары, состоящей из 'Range' и вектор символов или строковый скаляр в одной из следующих форм.

Форма значения Range Описание
'Corner1'

Corner1 задает первую ячейку области, чтобы записать. Функция записи пишет данные, запускающиеся в этой ячейке.

Пример: 'Range','D2'

'Corner1:Corner2'

Corner1 и Corner2 два противостоящих угла, которые задают область, чтобы записать. Например, 'D2:H4' представляет прямоугольную область 3 на 5 между этими двумя углами D2 и H4 на рабочем листе. 'Range' аргумент пары "имя-значение" не является чувствительным к регистру, и использует стиль ссылки Excel A1 (см. справку Excel).

Пример: 'Range','D2:H4'

  • Если диапазон, который вы указываете, меньше, чем размер входных данных, то функция записи пишет только подмножество входных данных, которое помещается в область значений.

  • Если диапазон, который вы указываете, больше, чем размер входных данных, то функция записи оставляет остаток от области как есть.

'Range' пара "имя-значение" может только использоваться с файлами Excel.

Пример: 'Range', 'A1:F10'

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

Отметьте, чтобы запустить экземпляр Microsoft® Excel для Windows при записи данных об электронной таблице в виде разделенной запятой пары, состоящей из 'UseExcel' и любой true, или false.

Можно установить 'UseExcel' параметр к одному из этих значений:

  • true — Функция записи запускает экземпляр Microsoft Excel при записывании файла.

  • false — Функция записи не запускает экземпляр Microsoft Excel при записывании файла. При работе в этом режиме функциональность для записи отличается в поддержку форматов файлов и интерактивных функций, таких как формулы и макросы.

UseExcel

true

false

Поддерживаемые форматы файлов

.xls, .xlsx, .xlsm, .xltx, .xltm, .xlsb, .ods

.xls, .xlsx, .xlsm, .xltx, .xltm

Поддержка интерактивных функций, таких как формулы и макросы

Да

Нет

Когда запись в файлы электронной таблицы на платформах Windows, если вы хотите запустить экземпляр Microsoft Excel, затем установила 'UseExcel' параметр к true.

Автоматически настройте ширину столбца в виде true или false. Если вы задаете значение 0 или falseто writecell автоматически не настроит ширину столбцов, чтобы приспособить данные в ячейках.

Пример: 'AutoFitWidth',0

Сохраните форматирование ячейки существующей электронной таблицы в виде true или false. Если вы задаете false, writecell не сохранит форматирование ячейки электронной таблицы. Форматирование включает элементы, такие как шрифты, границы ячейки и заштрихованные цветом ячейки.

При записи datetime данные в файл электронной таблицы, необходимо установить оба 'PreserveFormat' и 'UseExcel' Пара "имя-значение" к true сохранить форматирование существующей ячейки. Если 'UseExcel' установлен в false и 'PreserveFormat' установлен в true при записи datetime данные к файлу, writecell не сохранит форматирование существующей ячейки файла.

Пример: 'PreserveFormat'ложь

Ограничения

  • Установить 'PreserveFormat' пара "имя-значение" к true, необходимо установить 'UseExcel' пара "имя-значение" к true.

Алгоритмы

Существуют некоторые экземпляры где writecell функция создает файл, который не представляет входные данные точно. Вы заметите это, когда вы будете использовать readcell функционируйте, чтобы считать тот файл. Получившиеся данные не могут иметь того же самого формата или содержимого как исходные данные. Если необходимо сохранить массив ячеек и получить его в более позднее время, чтобы точно совпадать с массивом первоначальной ячейки, с теми же данными и организацией, то сохранить его как MAT-файл. writecell написала неточная таблица в следующих экземплярах:

  • writecell выписывает числовые данные с помощью long g формат и категориальные или символьные данные как закрывший кавычки текст.

  • writecell выписывает массивы ячеек, которые имеют больше чем две размерности как двумерные матрицы со свернутыми последующими измерениями.

Смотрите также

| | |

Введенный в R2019a