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'} {[19-Feb-2023]} {[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'} {[19-Feb-2023]} {'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 = 3x4 cell
{'Massachusetts' } {'New York' } {'Maryland' } {'Virginia' }
{'Black-capped chickadee'} {'Eastern bluebird'} {'Baltimore oriole'} {'Cardinal' }
{'Trailing arbutus' } {'Rose' } {'Black-eyed Susan'} {'Flowering dogwood'}
输入参数
C
— 输入元胞数组
元胞数组
输入数据,指定为元胞数组。
filename
— 文件名
字符向量 | 字符串标量
文件名,指定为字符向量或字符串标量。
根据您写入的位置,filename
可以采用以下形式之一。
位置 | 形式 | ||||||||
---|---|---|---|---|---|---|---|---|---|
当前文件夹 | 要写入当前文件夹,请在 示例: | ||||||||
其他文件夹 | 要写入不同于当前文件夹的文件夹,请在 示例: 示例: | ||||||||
远程位置 | 要写入远程位置,
根据远程位置,
有关详细信息,请参阅处理远程数据。 示例: |
如果
filename
包含文件扩展名,则写入函数基于扩展名确定文件格式。否则,写入函数会创建一个逗号分隔的文本文件,并附加扩展名.txt
。您也可以指定不带文件扩展名的filename
,然后添加'FileType'
名称-值对组参数来指示文件类型。
如果
filename
不存在,则写入函数会创建该文件。如果
filename
是一个现有文本文件的名称,则写入函数将覆盖该文件。如果
filename
是一个现有电子表格文件的名称,则写入函数会将数据写入指定位置,但不会覆盖输入数据范围之外的任何值。
数据类型: char
| string
名称-值参数
将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参数名称,Value
是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: 'FileType',text
指示变量名称不应作为输出文件的第一行包含在内。
FileType
— 文件类型
'text'
| 'spreadsheet'
文件类型,指定为逗号分隔的对组,其中包含 'FileType'
和一个包含 'text'
或 'spreadsheet'
的字符向量或字符串。
'FileType'
名称-值对组必须与 filename
输入参数配合使用。如果 filename
输入参数包含标准文件扩展名,则无需指定 'FileType'
名称-值对组参数。以下标准文件扩展名由写入函数识别:
.txt
、.dat
或.csv
(带分隔符的文本文件).xls
、.xlsm
或.xlsx
(适用于 Excel 电子表格文件).xlsb
(适用于安装了 Windows Excel 的系统上支持的 Excel 电子表格文件)
示例: 'FileType','spreadsheet'
数据类型: char
| string
DateLocale
— 用于写入日期的区域设置
字符向量 | 字符串标量
用于写入日期的区域设置,指定为逗号分隔的对组,其中包含 '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
— 写入模式
字符向量 | 字符串标量
写入模式,指定为以逗号分隔的对组,该对组由 'WriteMode'
和一个字符向量或字符串标量组成。根据文件类型选择一种写入模式。
文件类型 | 写入模式 |
---|---|
文本文件 |
如果您指定的文件不存在,则写入函数会创建数据并将数据写入新文件。 |
电子表格文件 |
|
当
WriteVariableNames
设置为true
时,写入函数不支持'append'
写入模式。对于电子表格文件:
当写入模式为
'append'
时,写入函数不支持Range
参数。如果您指定的文件不存在,则写入函数将执行与
'replacefile'
相同的动作。
示例: 'WriteMode','append'
数据类型: char
| string
Delimiter
— 字段分隔符
字符向量 | 字符串标量
字段分隔符,指定为逗号分隔的对组,由 'Delimiter'
和一个字符向量或字符串标量组成,该字符串标量包含以下设定符之一:
设定符 | 字段分隔符 |
---|---|
| 逗号。这是默认行为。 |
| 空格 |
| 制表符 |
| 分号 |
| 垂直条 |
您只能将 'Delimiter'
名称-值对组用于带分隔符的文本文件。
示例: 'Delimiter','space'
数据类型: char
| string
QuoteStrings
— 用于写入引用文本的指示符
"minimal"
(默认) | "all"
| "none"
用于写入引用文本的指示符,指定为 "minimal"
、"all"
或 "none"
。
如果
QuoteStrings
是"minimal"
,则该函数会将包含分隔符、换行符或双引号字符的任何变量用双引号字符引起来。如果
QuoteStrings
是"all"
,则该函数会将所有文本、分类、日期时间和持续时间变量用双引号字符引起来。如果
QuoteStrings
是"none"
,则该函数不会使用双引号字符将变量引起来。
您只能将 QuoteStrings
名称-值参数用于带分隔符的文本文件。
Encoding
— 字符编码方案
'UTF-8'
(默认) | 'ISO-8859-1'
| 'windows-1251'
| 'windows-1252'
| ...
与文件关联的字符编码方案,指定为以逗号分隔的对组,其中包含 'Encoding'
和 'system'
或标准字符编码方案名称。当您没有指定任何编码时,写入函数使用 UTF-8 来写入文件。
示例: 'Encoding','UTF-8'
使用 UTF-8 作为编码。
数据类型: char
| string
Sheet
— 要写入的工作表
字符向量 | 字符串标量 | 正整数
要写入的工作表,指定为逗号分隔的对组,包含 '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 的值的格式 | 描述 |
---|---|
' |
示例: |
' |
示例:
|
'Range'
名称-值对组只能与 Excel 文件配合使用。
示例: 'Range'
, 'A1:F10'
数据类型: char
| string
UseExcel
— 用于启动 Windows 版 Microsoft Excel 实例的标志
false
(默认) | true
指明在写电子表格数据时是否启动 Microsoft® Excel(Windows 版)实例的标志,指定为以逗号分隔的对组,其中包含 'UseExcel'
和 true
或 false
。
您可以将 'UseExcel'
参数设置为下列值之一:
true
- 写入函数在写入文件时启动 Microsoft Excel 的实例。false
- 写入函数在写入文件时不启动 Microsoft Excel 的实例。在此模式下操作时,写入功能支持的文件格式和交互式功能(例如公式和宏)有所不同。
UseExcel |
|
|
---|---|---|
支持的文件格式 |
|
|
支持交互功能,例如公式和宏 | 是 | 否 |
在 Windows 平台上写入电子表格文件时,如果您想启动 Microsoft Excel 实例,则将 'UseExcel'
参数设置为 true
。
AutoFitWidth
— 自动调整列宽
true
(默认) | false
自动调整列宽,指定为 true
或 false
。如果指定值为 0
或 false
,则 writecell
不会自动调整列宽以适应单元格中的数据。
示例: 'AutoFitWidth'
,0
PreserveFormat
— 保留单元格格式
true
(默认) | false
保留现有电子表格的单元格格式,指定为 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 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)