writecell
将元胞数组写入文件
说明
writecell(
将元胞数组 C
)C
写入以逗号分隔的文本文件。文件名是元胞数组的工作区名称,附加扩展名 .txt
。如果 writecell
无法根据输入元胞数组的名称构造文件名,那么它会写入 cell.txt
文件中。
C
中每个变量的每一列都将成为输出文件中的列。writecell
函数会覆盖任何现有文件。
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'} {[13-Jul-2025]} {[1 hr]}
rgb = {'red','green','blue'}
rgb = 1×3 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'} {[13-Jul-2025]} {'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
{["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"]}
将元胞数组 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 = 3×4 cell
{'Massachusetts' } {'New York' } {'Maryland' } {'Virginia' }
{'Black-capped chickadee'} {'Eastern bluebird'} {'Baltimore oriole'} {'Cardinal' }
{'Trailing arbutus' } {'Rose' } {'Black-eyed Susan'} {'Flowering dogwood'}
输入参数
输入数据,指定为元胞数组。
文件名,指定为字符向量或字符串标量。
根据您写入的位置,filename
可以采用以下形式之一。
位置 | 形式 | ||||||||
---|---|---|---|---|---|---|---|---|---|
当前文件夹 | 要写入当前文件夹,请在 示例: | ||||||||
其他文件夹 | 要写入不同于当前文件夹的文件夹,请在 示例: 示例: | ||||||||
远程位置 | 要写入远程位置,
根据远程位置,
有关详细信息,请参阅处理远程数据。 示例: |
如果
filename
包含文件扩展名,则写入函数基于扩展名确定文件格式。否则,写入函数会创建一个逗号分隔的文本文件,并附加扩展名.txt
。您也可以指定不带文件扩展名的filename
,然后添加'FileType'
名称-值对组参量来指示文件类型。
如果
filename
不存在,则写入函数会创建该文件。如果
filename
是一个现有文本文件的名称,则写入函数将覆盖该文件。如果
filename
是一个现有电子表格文件的名称,则写入函数会将数据写入指定位置,但不会覆盖输入数据范围之外的任何值。
数据类型: char
| string
名称-值参数
以 Name1=Value1,...,NameN=ValueN
的形式指定可选参量对组,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: 'FileType',text
指示变量名称不应作为输出文件的第一行包含在内。
文本和电子表格文件
文件类型,指定为逗号分隔的对组,其中包含 'FileType'
和一个包含 'text'
或 'spreadsheet'
的字符向量或字符串。
'FileType'
名称-值对组必须与 filename
输入参量配合使用。如果 filename
输入参量包含标准文件扩展名,则无需指定 'FileType'
名称-值对组参量。以下标准文件扩展名由写入函数识别:
.txt
、.dat
或.csv
(带分隔符的文本文件).xls
、.xlsm
或.xlsx
(适用于 Excel 电子表格文件).xlsb
(适用于安装了 Windows Excel 的系统上支持的 Excel 电子表格文件)
示例: 'FileType','spreadsheet'
数据类型: char
| string
用于写入日期的区域设置,指定为逗号分隔的对组,其中包含 'DateLocale'
和一个字符向量或字符串标量。在将 datetime
值写入文件时,请使用 DateLocale
指定 writecell
写入月和星期几的名称以及缩写所用的区域设置。该字符向量或字符串采用
形式,其中 xx
_YY
xx
是用于指示语言的小写 ISO 639-1 双字母代码,YY
是用于指示国家/地区的大写 ISO 3166-1 alpha-2 代码。有关区域设置的常见值的列表,请参阅 datetime
函数的 Locale
名称-值对组参量。
当日期可以写为 Excel 格式的日期时,写入函数将忽略 'DateLocale'
参数值。
示例: 'DateLocale','ja_JP'
数据类型: char
| string
写入模式,指定为以逗号分隔的对组,该对组由 'WriteMode'
和一个字符向量或字符串标量组成。根据文件类型选择一种写入模式。
文件类型 | 写入模式 |
---|---|
文本文件 |
如果您指定的文件不存在,则写入函数会创建数据并将数据写入新文件。 |
电子表格文件 |
|
当
WriteVariableNames
设置为true
时,写入函数不支持'append'
写入模式。对于电子表格文件:
当写入模式为
'append'
时,写入函数不支持Range
参数。如果您指定的文件不存在,则写入函数将执行与
'replacefile'
相同的动作。
示例: 'WriteMode','append'
数据类型: char
| string
仅限文本文件
字段分隔符,指定为逗号分隔的对组,由 'Delimiter'
和一个字符向量或字符串标量组成,该字符串标量包含以下设定符之一:
设定符 | 字段分隔符 |
---|---|
| 逗号。这是默认行为。 |
| 空格 |
| 制表符 |
| 分号 |
| 垂直条 |
您只能将 'Delimiter'
名称-值对组用于带分隔符的文本文件。
示例: 'Delimiter','space'
数据类型: char
| string
用于写入引用文本的指示符,指定为 "minimal"
、"all"
或 "none"
。
如果
QuoteStrings
是"minimal"
,则该函数会将包含分隔符、换行符或双引号字符的任何变量用双引号字符引起来。如果
QuoteStrings
是"all"
,则该函数会将所有文本、分类、日期时间和持续时间变量用双引号字符引起来。如果
QuoteStrings
是"none"
,则该函数不会使用双引号字符将变量引起来。
您只能将 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 的值的格式 | 描述 |
---|---|
' |
示例: |
' |
示例:
|
'Range'
名称-值对组只能与 Excel 文件配合使用。
示例: 'Range'
, 'A1:F10'
数据类型: char
| string
指明在写电子表格数据时是否启动 Microsoft Excel(Windows 版)实例的标志,指定为以逗号分隔的对组,其中包含 'UseExcel'
和 true
或 false
。
您可以将 'UseExcel'
参数设置为下列值之一:
true
- 写入函数在写入文件时启动 Microsoft Excel 的实例。false
- 写入函数在写入文件时不启动 Microsoft Excel 的实例。在此模式下操作时,写入功能支持的文件格式和交互式功能(例如公式和宏)有所不同。
UseExcel |
|
|
---|---|---|
支持的文件格式 |
|
|
支持交互功能,例如公式和宏 | 是 | 否 |
在 Windows 平台上写入电子表格文件时,如果您想启动 Microsoft Excel 实例,则将 'UseExcel'
参数设置为 true
。
UseExcel
在非交互式自动化环境中不受支持。
自动调整列宽,指定为 true
或 false
。如果指定值为 0
或 false
,则 writecell
不会自动调整列宽以适应单元格中的数据。
示例: 'AutoFitWidth'
,0
保留现有电子表格的单元格格式,指定为 true
或 false
。如果您指定 false
,writecell
将不会保留电子表格的单元格格式。格式包括字体、单元格边框和着色单元格等元素。
将 datetime
数据写入电子表格文件时,必须将 'PreserveFormat'
和 'UseExcel'
名称-值对组都设置为 true
,才能保留现有单元格的格式。如果将 'UseExcel'
设置为 false
,同时将 'PreserveFormat'
设置为 true
,则当将 datetime
数据写入文件时,writecell
不会保留文件的现有单元格格式。
示例: 'PreserveFormat'
,false
算法
有些情况下,
writecell
函数创建的文件并不能准确表示输入数据。当您使用readcell
函数来读取该文件时,就会注意到这一点。生成的数据可能不具备与原始数据完全相同的格式或内容。如果您需要原样保存元胞数组并在以后检索它,以便能与具有相同数据和组织形式的原始元胞数组精确匹配,则可将其另存为 MAT 文件。在以下情况下,writecell
输出的表数据不准确:writecell
使用long g
格式输出数值数据,并将分类数据或字符数据输出为不带引号的文本。writecell
将具有两个维度以上的元胞数组输出二维数组,并折叠尾部维度。
Excel 将
Inf
值转换为65535
。MATLAB® 将NaN
、NaT
和<undefined>
分类值以及<missing>
字符串值转换为空单元格。
版本历史记录
在 R2019a 中推出
另请参阅
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)