Contenido principal

writecell

Escribir un arreglo de celdas en un archivo

Descripción

writecell(C) escribe un arreglo de celdas C en un archivo de texto delimitado por comas. El nombre de archivo es el nombre del área de trabajo del arreglo de celdas, seguido de la extensión .txt. Si writecell no puede construir el nombre de archivo a partir del nombre del arreglo de celdas, escribe en el archivo cell.txt.

Cada columna de cada variable en C se convierte en una columna en el archivo de salida. La función writecell sobrescribe cualquier archivo existente.

ejemplo

writecell(C,filename) escribe en un archivo con el nombre y la extensión especificados por filename.

writecell determina el formato de archivo a partir de la extensión especificada. La extensión debe ser una de las siguientes:

  • .txt, .dat, o .csv para los archivos de texto delimitado

  • .xls, .xlsm o .xlsx para los archivos de hoja de cálculo de Excel®

  • .xlsb para hojas de cálculo de Excel compatibles con sistemas con Excel para Windows®

ejemplo

writecell(___,Name,Value) escribe el arreglo de celdas en un archivo con opciones adicionales especificado por uno o más argumentos de par Name,Value y puede incluir cualquiera de los argumentos de entrada de las sintaxis anteriores.

ejemplo

Ejemplos

contraer todo

Cree un arreglo de celdas, escríbalo en un archivo de texto separado por comas y, después, escriba el arreglo de celdas en otro archivo de texto con un carácter delimitador diferente.

Cree un arreglo de celdas simple en el área de trabajo.

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

Escriba el arreglo de celdas en un archivo de texto delimitado por comas y muestre el contenido del archivo. La función writecell genera como resultado un archivo de texto llamado C.txt.

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

Para escribir el mismo arreglo de celdas en un archivo de texto con un carácter delimitador diferente, use el par nombre-valor 'Delimiter'.

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

Cree un arreglo de celdas, escríbalo en un archivo de hoja de cálculo y, después, lea y muestre el contenido del archivo.

Cree un arreglo de celdas en el área de trabajo.

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

Escriba el arreglo de celdas en un archivo de hoja de cálculo.

writecell(C,'C.xls')

Lea y muestre la matriz de C.xls.

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

Cree un arreglo de celdas y escríbalo en una hoja e intervalo especificados en un archivo de hoja de cálculo.

Cree un arreglo de celdas en el área de trabajo.

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

Escriba el arreglo de celdas en el archivo C.xls, en la segunda hoja de trabajo del archivo, comenzando en la tercera fila.

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

Lea y muestre el arreglo de celdas.

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

Añada un arreglo de celdas al final de un archivo de hoja de cálculo que contenga datos existentes.

Cree dos arreglos de celdas en el área de trabajo.

C =  {1,2,3;
     'text',datetime('today'),hours(1)}
C=2×3 cell array
    {[   1]}    {[          2]}    {[   3]}
    {'text'}    {[13-Jul-2025]}    {[1 hr]}

rgb = {'red','green','blue'}
rgb = 1×3 cell
    {'red'}    {'green'}    {'blue'}

Escriba el arreglo de celdas C en un archivo de hoja de cálculo llamado C.xls.

writecell(C,'C.xls')

Añada el arreglo de celdas rgb debajo de los datos existentes en el archivo de hoja de cálculo.

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

Lea y muestre el arreglo de celdas.

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

Añada arreglos de celdas al final de un archivo de texto que contenga datos existentes.

Cree tres arreglos de celdas en el área de trabajo.

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
    {["Black-capped chickadee"]}    {["Eastern bluebird"]}    {["Baltimore oriole"]}    {["Cardinal"]}

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

Escriba el arreglo de celdas states en el archivo states.txt. A continuación, escriba los arreglos stateBird y stateFlower debajo de las entradas existentes en el archivo de texto.

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

Lea y muestre el arreglo de celdas.

readcell('states.txt')
ans = 3×4 cell
    {'Massachusetts'         }    {'New York'        }    {'Maryland'        }    {'Virginia'         }
    {'Black-capped chickadee'}    {'Eastern bluebird'}    {'Baltimore oriole'}    {'Cardinal'         }
    {'Trailing arbutus'      }    {'Rose'            }    {'Black-eyed Susan'}    {'Flowering dogwood'}

Argumentos de entrada

contraer todo

Datos de entrada, especificados como un arreglo de celdas.

Nombre de archivo, especificado como vector de caracteres o escalar de cadena.

En función de la ubicación en la que está escribiendo, filename puede tomar una de estas formas.

Ubicación

Forma

Carpeta actual

Para escribir en la carpeta actual, especifique el nombre del archivo en filename.

Ejemplo: 'myTextFile.csv'

Otras carpetas

Para escribir en una carpeta distinta a la carpeta actual, especifique el nombre de la ruta completa o relativa en filename.

Ejemplo: 'C:\myFolder\myTextFile.csv'

Ejemplo: 'myFolder\myExcelFile.xlsx'

Ubicación remota

Para guardar archivos en una ubicación remota, filename debe contener la ruta completa del archivo, especificada como un localizador uniforme de recursos (URL) con el formato:

scheme_name://path_to_file/my_file.ext

Según la ubicación remota, scheme_name puede ser uno de los valores de esta tabla.

Ubicación remotascheme_name
Amazon S3™s3
Windows Azure® Blob Storagewasb, wasbs
HDFS™hdfs

Para obtener más información, consulte Trabajar con datos remotos.

Ejemplo: 's3://bucketname/path_to_file/my_file.xlsx'

  • Si filename incluye la extensión del archivo, la función de escritura determina el formato del archivo desde la extensión. De lo contrario, la función de escritura crea un archivo de texto separado por comas y añade la extensión .txt. De manera alternativa, puede especificar filename sin la extensión del archivo y, después, incluir los argumentos de par nombre-valor 'FileType' para indicar el tipo de archivo.

  • Si filename no existe, la función de escritura crea el archivo.

  • Si filename es el nombre de un archivo de texto existente, la función de escritura sobrescribe el archivo.

  • Si filename es el nombre de un archivo de hoja de cálculo existente, la función de escritura escribe los datos en la ubicación especificada, pero no sobrescribe ningún valor fuera del intervalo de los datos de entrada.

Tipos de datos: char | string

Argumentos de par nombre-valor

expandir todo

Especifique pares opcionales de argumentos como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de otros argumentos, pero el orden de los pares no importa.

En las versiones anteriores a R2021a, utilice comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: 'FileType',text indica que los nombres de variable no deben incluirse como la primera fila del archivo de salida.

Archivos de texto y de hoja de cálculo

expandir todo

Tipo de archivo, especificado como el par separado por comas que consta de 'FileType' y un vector de caracteres o cadena que contiene 'text' o 'spreadsheet'.

El par nombre-valor 'FileType' debe usarse con el argumento de entrada filename. No es necesario especificar el argumento de par nombre-valor 'FileType' si el argumento de entrada filename incluye una extensión de archivo estándar. La función de escritura reconoce las siguientes extensiones de archivo estándar:

  • .txt, .dat, o .csv para los archivos de texto delimitado

  • .xls, .xlsm o .xlsx para los archivos de hoja de cálculo de Excel

  • .xlsb para hojas de cálculo de Excel compatibles con sistemas con Excel para Windows

Ejemplo: 'FileType','spreadsheet'

Tipos de datos: char | string

Configuración local para escribir fechas, especificada como el par separado por comas que consta de 'DateLocale' y un vector de caracteres o un escalar de cadena. Cuando escriba valores datetime en el archivo, use DateLocale para especificar la configuración local en la que writecell debería escribir nombres de meses y días de la semana y abreviaturas. El vector de caracteres o cadena toma la forma xx_YY, donde xx es un código ISO 639-1 de dos letras minúsculas que indica un idioma e YY es un código ISO 3166-1 alpha-2 de dos letras mayúsculas que indica un país. Para ver una lista de valores habituales para la configuración local, consulte el argumento de par nombre-valor Locale para la función datetime.

La función de escritura ignora el valor del parámetro 'DateLocale' siempre que las fechas se puedan escribir como fechas con formato de Excel.

Ejemplo: 'DateLocale','ja_JP'

Tipos de datos: char | string

Modo de escritura, especificado como el par separado por comas que consta de 'WriteMode' y un vector de caracteres o un escalar de cadena. Seleccione un modo de escritura en función del tipo de archivo.

Tipo de archivo

Modo de escritura

Archivos de texto

  • 'overwrite' (valor predeterminado): sobrescribe el archivo.

  • 'append': añade datos al archivo.

Si el archivo que ha especificado no existe, la función de escritura crea un archivo nuevo y escribe datos en él.

Archivos de hoja de cálculo

  • 'inplace' (valor predeterminado): actualiza únicamente el intervalo ocupado por los datos de entrada. La función de escritura no cambia ningún dato fuera del intervalo ocupado por los datos de entrada.

    • Si no especifica una hoja, la función de escritura escribe en la primera hoja.

  • 'overwritesheet': borra la hoja especificada y escribe los datos de entrada en la hoja borrada.

    • Si no especifica una hoja, la función de escritura borra la primera hoja y escribe los datos de entrada en ella.

  • 'append': la función de escritura añade los datos de entrada a la parte inferior del intervalo ocupado de la hoja especificada.

    • Si no especifica una hoja, la función de escritura añade los datos de entrada a la parte inferior del intervalo ocupado de la primera hoja.

  • 'replacefile': elimina el resto de hojas del archivo y, después, borra y escribe los datos de entrada en la hoja especificada.

    • Si no especifica una hoja, la función de escritura elimina el resto de hojas del archivo y, después, escribe los datos de entrada en la primera hoja.

    • Si el archivo que ha especificado no existe, la función de escritura crea un archivo nuevo y escribe los datos de entrada en la primera hoja.

  • Cuando WriteVariableNames se establece en true, la función de escritura no admite el modo de escritura 'append'.

  • Para archivos de hoja de cálculo:

    • Cuando el modo de escritura es 'append', la función de escritura no admite el parámetro Range.

    • Si el archivo especificado no existe, la función de escritura realiza las mismas acciones que 'replacefile'.

Ejemplo: 'WriteMode','append'

Tipos de datos: char | string

Solo archivos de texto

expandir todo

Carácter delimitador de campo, especificado como el par separado por comas que consta de 'Delimiter' y un vector de caracteres o escalar de cadena que contiene uno de los siguientes especificadores:

Especificador

Delimitador de campo

','

'comma'

Coma. Se trata del comportamiento predeterminado.

' '

'space'

Espacio

'\t'

'tab'

Tabulador

';'

'semi'

Punto y coma

'|'

'bar'

Barra vertical

Puede utilizar el par nombre-valor 'Delimiter' solo para archivos de texto delimitado.

Ejemplo: 'Delimiter','space'

Tipos de datos: char | string

Indicador para escribir texto entrecomillado, especificado como "minimal", "all" o "none".

  • Si QuoteStrings es "minimal", la función encierra cualquier variable que contenga el delimitador, la nueva línea o el carácter de comillas dobles en caracteres de comillas dobles.

  • Si QuoteStrings es "all", la función encierra todas las variables de texto, categóricas, de fecha/hora y duración en caracteres de comillas dobles.

  • Si QuoteStrings es "none", la función no encierra variables en caracteres de comillas dobles.

Puede usar el argumento nombre-valor QuoteStrings solo con archivos de texto delimitado.

Esquema de codificación de caracteres asociado al archivo, especificado como el par separado por comas que consta de 'Encoding' y 'system' o un nombre de esquema de codificación de caracteres estándar. Cuando no se especifica ninguna codificación, la función de escritura utiliza UTF-8 para escribir en el archivo.

Ejemplo: 'Encoding','UTF-8' utiliza UTF-8 como codificación.

Tipos de datos: char | string

Solo archivos de hoja de cálculo

expandir todo

Hoja de cálculo en la que desea escribir, especificada como el par separado por comas que consta de 'Sheet' y un vector de caracteres o un escalar de cadena que contiene el nombre de la hoja de cálculo o un entero positivo que indica el índice de la hoja de cálculo. El nombre de la hoja de cálculo no puede contener dos puntos (:). Para determinar los nombres de las hojas en un archivo de hoja de cálculo, utilice sheets = sheetnames(filename). Para obtener más información, consulte sheetnames.

Especifique la hoja de cálculo en la que desea escribir por nombre o índice:

  • por nombre: si el nombre de hoja de cálculo especificado no existe en el archivo, la función de escritura añade una nueva hoja al final de la colección de hojas de cálculo.

  • por índice: si el índice de la hoja especificada es un índice mayor que el número de hojas de cálculo, la función de escritura anexa hojas vacías hasta que el número de hojas de cálculo del libro es igual al índice de hojas. La función de escritura también genera una advertencia que indica que se ha añadido una nueva hoja de cálculo.

Puede utilizar el par nombre-valor 'Sheet' solo con archivos de hoja de cálculo.

Ejemplo: 'Sheet',2

Ejemplo: 'Sheet', 'MySheetName'

Tipos de datos: char | string | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Parte rectangular de la hoja de cálculo en la que desea escribir, especificada como el par separado por comas que consta de 'Range' y un vector de caracteres o un escalar de cadena con uno de los siguientes formatos:

Formato del valor de Range Descripción
'Corner1'

Corner1 especifica la primera celda de la región en la que se desea escribir. La función de escritura escribe los datos empezando por esta celda.

Ejemplo: 'Range','D2'

'Corner1:Corner2'

Corner1 y Corner2 son dos esquinas opuestas que definen la región en la que se desea escribir. Por ejemplo, 'D2:H4' representa la región rectangular de 3 por 5 entre las dos esquinas D2 y H4 en la hoja de cálculo. El argumento de par nombre-valor 'Range' no distingue entre mayúsculas y minúsculas, y utiliza el estilo de referencia A1 de Excel (consulte Excel para obtener ayuda).

Ejemplo: 'Range','D2:H4'

  • Si el intervalo que especifica es menor que el tamaño de los datos de entrada, la función de escritura escribe únicamente un subconjunto de los datos de entrada que quepa en el intervalo.

  • Si el intervalo que especifica es mayor que el tamaño de los datos de entrada, la función de escritura deja la parte restante de la región como está.

El par nombre-valor 'Range' puede usarse únicamente con archivos de Excel.

Ejemplo: 'Range', 'A1:F10'

Tipos de datos: char | string

Indicador para inciar una instancia de Microsoft Excel para Windows al escribir datos de hoja de cálculo, especificado como el par separado por comas que consta de 'UseExcel' y true o false.

Puede establecer el parámetro 'UseExcel' en uno de estos valores:

  • true: la función de escritura inicia una instancia de Microsoft Excel al escribir el archivo.

  • false: la función de escritura no inicia una instancia de Microsoft Excel al escribir el archivo. Al operar en este modo, la funcionalidad de escritura varía en la compatibilidad de los formatos de archivo y características interactivas, como fórmulas y macros.

UseExcel

true

false

Formatos de archivo compatibles

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

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

Soporte para funcionalidades interactivas, como fórmulas y macros

No

Al escribir en archivos de hojas de cálculo en plataformas de Windows, si desea iniciar una instancia de Microsoft Excel, establezca el parámetro 'UseExcel' en true.

UseExcel no es compatible en entornos automatizados no interactivos.

Ajustar de manera automática el ancho de las columnas, especificado como true o false. Si especifica un valor de 0 o false, writecell no ajustará de manera automática los anchos de las columnas para que los datos quepan en las celdas.

Ejemplo: 'AutoFitWidth',0

Mantener el formato de las celdas de una hoja de cálculo existente, especificado como true o false. Si especifica false, writecell no mantendrá el formato de las celdas de la hoja de cálculo. El formato incluye elementos como fuentes, bordes de celda y celdas sombreadas con color.

Cuando escriba datos datetime en un archivo de hoja de cálculo, debe establecer tanto 'PreserveFormat' como el par nombre-valor 'UseExcel' en true para mantener el formato de las celdas existente. Si 'UseExcel' se establece en false y 'PreserveFormat' se establece en true, cuando escriba datos datetime en el archivo, writecell no mantendrá el formato de las celdas existente del archivo.

Ejemplo: 'PreserveFormat',false

Algoritmos

  • Existen algunos casos en los que la función writecell crea un archivo que no representa los datos de entrada con exactitud. Observará esto cuando utilice la función readcell para leer ese archivo. Es posible que los datos resultantes no tengan exactamente el mismo formato o contenido que los datos originales. Si necesita guardar un arreglo de celdas y recuperarlo más adelante para que coincida de manera exacta con el arreglo de celdas original, con los mismos datos y organización, guárdelo como un archivo MAT. writecell escribe una tabla inexacta en los casos siguientes:

    • writecell escribe datos numéricos usando el formato long g y datos categóricos o de caracteres como texto sin entrecomillar.

    • writecell escribe arreglos de celdas que tienen más de dos dimensiones como arreglos bidimensionales, con las dimensiones finales contraídas.

  • Excel convierte los valores Inf en 65535. MATLAB® convierte los valores categóricos NaN, NaT y <undefined>, y los valores de cadena <missing> en celdas vacías.

Historial de versiones

Introducido en R2019a