writetable
将表写入文件
说明
writetable(
将表 T
)T
写入逗号分隔的文本文件。文件名为表的工作区变量名称,附加扩展名 .txt
。如果 writetable
无法根据输入表名称构造文件名,那么它会写入 table.txt
文件中。
对于文本文件和电子表格文件,T 中每个变量的每列都成为输出文件中的一列。T
的变量名称将成为文件第一行的列标题。
对于 XML 文件,T
中的每列都成为输出文件中的一个 XML 节点。T
的变量名称成为输出 XML 文件中元素节点的名称。
writetable(___,
通过一个或多个 Name,Value
)Name,Value
对组参量指定的其他选项将表写入文件中,并且可以包含以前语法中的任何输入参量。
例如,您可以指定是否将变量名称写入为输出文件中的列标题。
示例
将表写入到文本文件
创建一个表。
T = table(['M';'F';'M'],[45 45;41 32;40 34],... {'NY';'CA';'MA'},[true;false;false])
T=3×4 table
Var1 Var2 Var3 Var4
____ ________ ______ _____
M 45 45 {'NY'} true
F 41 32 {'CA'} false
M 40 34 {'MA'} false
将表写入逗号分隔的文本文件,并显示文件内容。
writetable(T)
writetable
将输出名为 T.txt
的文本文件。
type 'T.txt'
Var1,Var2_1,Var2_2,Var3,Var4 M,45,45,NY,1 F,41,32,CA,0 M,40,34,MA,0
writetable
会向变量名称 Var2
附加一个唯一的后缀(位于两列相应数据的上方)。
将表写入空格分隔的文本文件
创建一个表。
T = table(['M';'F';'M'],[45 45;41 32;40 34],... {'NY';'CA';'MA'},[true;false;false])
T=3×4 table
Var1 Var2 Var3 Var4
____ ________ ______ _____
M 45 45 {'NY'} true
F 41 32 {'CA'} false
M 40 34 {'MA'} false
将表写入名为 myData.txt
的以空格分隔的文本文件并显示文件内容。
writetable(T,'myData.txt','Delimiter',' ') type 'myData.txt'
Var1 Var2_1 Var2_2 Var3 Var4 M 45 45 NY 1 F 41 32 CA 0 M 40 34 MA 0
writetable
会向变量名称 Var2
附加一个唯一的后缀(位于两列相应数据的上方)。
将表写入包含行名称的文本文件
创建一个表。
LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'}; Age = [38;43;38;40;49]; Height = [71;69;64;67;64]; Weight = [176;163;131;133;119]; BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80]; T = table(Age,Height,Weight,BloodPressure,... 'RowNames',LastName)
T=5×4 table
Age Height Weight BloodPressure
___ ______ ______ _____________
Smith 38 71 176 124 93
Johnson 43 69 163 109 77
Williams 38 64 131 125 83
Jones 40 67 133 117 75
Brown 49 64 119 122 80
将表 T
写入名为 myPatientData.dat
的逗号分隔的文本文件,并显示文件内容。
writetable(T,'myPatientData.dat','WriteRowNames',true) type 'myPatientData.dat'
Row,Age,Height,Weight,BloodPressure_1,BloodPressure_2 Smith,38,71,176,124,93 Johnson,43,69,163,109,77 Williams,38,64,131,125,83 Jones,40,67,133,117,75 Brown,49,64,119,122,80
包含行名称的第一列的列标题为 Row
。这是从属性 T.Properties.DimensionNames
获取的表的第一个维度名称。
将外语日期写入文本文件
将表中的英语日期转换为德语,并将表写入文件。
创建包含英语日期的 datetime
数组的表。创建要与日期一起使用的数值数据的列向量。
D = datetime({'01-Jan-2014';'01-Feb-2014';'01-Mar-2014'}); D.Format = 'dd MMMM yyyy'; X1 = [20.2;21.6;20.7]; X2 = [100.5;102.7;99.8]; T = table(D,X1,X2)
T = D X1 X2 ________________ ____ _____ 01 January 2014 20.2 100.5 01 February 2014 21.6 102.7 01 March 2014 20.7 99.8
将表写入一个文本文件。使用 DateLocale
名称-值对组参量将日期的区域设置指定为德语,并在文本文件中显示日期。
writetable(T,'myfile.txt','DateLocale','de_DE'); type myfile.txt
D,X1,X2 01 Januar 2014,20.2,100.5 01 Februar 2014,21.6,102.7 01 März 2014,20.7,99.8
将外语字符写入文本文件
当您的数据包含外语或非 ASCII 字符时,请使用 encoding 参数以确保文件正确写入。首先,将提供的表加载到工作区。然后使用默认编码将该表写入文件。最后,使用 'UTF-8'
编码写入该表,并检查结果。
加载包含表 T 的 Table_Japanese_Characters.mat
。下面显示了表的预览。请注意,该表包含两列日语字符。
load('Table_Japanese_Characters.mat')
将表写入一个文件。writetable
函数将使用系统默认编码编写文件。根据您的系统设置,结果可能有所不同。要检查生成的文件,请使用 readtable
函数将该表重新读取到工作区。请注意 writetable
未成功写入包含外语字符的列(第 1 列和第 3 列)。
writetable(T,'myTable.txt') myTable = readtable('myTable.txt')
myTable=9×3 table
A B C
_____ ______ _______
'' 458.98 ''
'' 530.14 ''
'' 289.4 ''
'' 434.81 ''
'' 186.44 ''
'' 0 ''
'' 231.29 ''
'' 311.86 ''
'' 239.93 ''
如果您的表包含外语或非 ASCII 字符,必须使用 'Encoding'
参数以确保正确写入数据。将 'Encoding'
设置为 'UTF-8'
,以支持较广泛的外语和非 ASCII 字符。要检查生成的文件,请使用 readtable
函数将该表重新读取到工作区。使用正确的编码参数,writetable
函数可以成功写入数据。
writetable(T,'myTable_UTF8.txt','Encoding','UTF-8') myTable_UTF8 = readtable('myTable_UTF8.txt','Encoding','UTF-8')
myTable_UTF8=9×3 table
A B C
_______ ______ ___________
'南西' 458.98 '冬の嵐'
'南東' 530.14 '冬の嵐'
'南東' 289.4 '冬の嵐'
'西' 434.81 '機器の故障'
'中西部' 186.44 '深刻な嵐'
'西' 0 '攻撃'
'西' 231.29 '機器の故障'
'西' 311.86 '機器の故障'
'北東' 239.93 '火災'
将引用文本写入 CSV 文件
创建一个表。
T = table(['M';'F';'M'],[45;41;36],... {'New York, NY';'San Diego, CA';'Boston, MA'},[true;false;false])
T=3×4 table
Var1 Var2 Var3 Var4
____ ____ _________________ _____
M 45 {'New York, NY' } true
F 41 {'San Diego, CA'} false
M 36 {'Boston, MA' } false
将表写入一个名为 myData.csv
的逗号分隔的文本文件,并查看文件内容。使用 'QuoteStrings'
名称-值对组参量以确保第三列中的逗号不被视为分隔符。
writetable(T,'myData.csv','Delimiter',',','QuoteStrings','all') type 'myData.csv'
Var1,Var2,Var3,Var4 "M",45,"New York, NY",1 "F",41,"San Diego, CA",0 "M",36,"Boston, MA",0
将表写入到电子表格中特定的工作表和范围
创建一个表。
T = table(['M';'F';'M'],[45 45;41 32;40 34],... {'NY';'CA';'MA'},[true;false;false])
T=3×4 table
Var1 Var2 Var3 Var4
____ ________ ______ _____
M 45 45 {'NY'} true
F 41 32 {'CA'} false
M 40 34 {'MA'} false
将表写入到名为 myData.xls
的电子表格中。将第一张电子表格中的数据包含在 5×5 的区域中,转角位于 B2
和 F6
。您可以通过指定对应于工作表的索引来更改要写入到的工作表。
writetable(T,'myData.xls','Sheet',1,'Range','B2:F6')
Excel® 使用 #N/A
填充电子表格的 B6
到 F6
行,因为指定的范围大于输入表 T
的大小。
写入包含任意变量名称的表格数据
您可以写入包含变量名称的表格数据,变量名称可以包含任何字符(包括空格和非 ASCII 字符)。创建具有任意变量名称的表,并将该表写入一个文本文件。然后,读回表格数据,同时保留原始变量名称。
创建一个表,其中包含三个具有任意变量名称的变量。第一个和第三个变量名称包含空格和非 ASCII 字符。
LastName = {'Sanchez';'Johnson';'Li';'Diaz';'Brown'}; Age = [38;43;38;40;49]; Smoker = logical([1;0;1;0;1]); varNames = {'Last Name','Age','Smoker (1 or 0)'}; T = table(LastName,Age,Smoker,'VariableNames',varNames)
T=5×3 table
Last Name Age Smoker (1 or 0)
___________ ___ _______________
{'Sanchez'} 38 true
{'Johnson'} 43 false
{'Li' } 38 true
{'Diaz' } 40 false
{'Brown' } 49 true
将数据写入文件 'sampletable.txt'
。
writetable(T,'sampletable.txt')
使用 readtable
读回表格数据。默认情况下,MATLAB® 将任何包含空格和非 ASCII 字符的变量名称转换为有效的 MATLAB® 标识符。例如,MATLAB® 将变量名称 'Last Name'
转换为 'LastName'
,将 'Smoker (1 or 0)'
转换为 'Smoker_1or0_'
。要在保留变量名称的同时读取表格数据,请将 'VariableNamingRule'
参数设置为 preserve
。
T_preserve = readtable('sampletable.txt',"VariableNamingRule","preserve")
T_preserve=5×3 table
Last Name Age Smoker (1 or 0)
___________ ___ _______________
{'Sanchez'} 38 1
{'Johnson'} 43 0
{'Li' } 38 1
{'Diaz' } 40 0
{'Brown' } 49 1
将数据追加到表的底部
将数据作为新行追加到包含现有数据的表的底部。
创建一个表。
InsectSpecies = {'Monarch Butterfly';'Seven-spot Ladybird';'Orchid Mantis';... 'American Bumblebee';'Blue Dasher Dragonfly'}; InsectOrder = {'Lepidoptera';'Coleoptera';'Mantodea';'Hymenoptera';'Odonata'}; InsectFamily = {'Nymphalidae';'Coccinellidae';'Hymenopodidae';... 'Apidae';'Libellulidae'}; PredatoryInsect = logical([0;1;1;0;1]); T = table(InsectSpecies,InsectOrder,InsectFamily,PredatoryInsect)
T=5×4 table
InsectSpecies InsectOrder InsectFamily PredatoryInsect
_________________________ _______________ _________________ _______________
{'Monarch Butterfly' } {'Lepidoptera'} {'Nymphalidae' } false
{'Seven-spot Ladybird' } {'Coleoptera' } {'Coccinellidae'} true
{'Orchid Mantis' } {'Mantodea' } {'Hymenopodidae'} true
{'American Bumblebee' } {'Hymenoptera'} {'Apidae' } false
{'Blue Dasher Dragonfly'} {'Odonata' } {'Libellulidae' } true
将表 T 写入名为 InsectCollection.txt
的文本文件。
writetable(T,'InsectCollection.txt','WriteRowNames',true)
创建表形式的新数据,以添加到现有表中。
newInsect = table({'Red-banded leafhopper'},{'Hemiptera'},{'Cicadellidae'},logical([0]))
newInsect=1×4 table
Var1 Var2 Var3 Var4
_________________________ _____________ ________________ _____
{'Red-banded leafhopper'} {'Hemiptera'} {'Cicadellidae'} false
使用 'WriteMode','Append'
名称-值对组参量将 newInsect
追加到 InsectCollection.txt
文件。
writetable(newInsect,'InsectCollection.txt','WriteMode','Append',... 'WriteVariableNames',false,'WriteRowNames',true)
将该表读回工作区中。
readtable('InsectCollection.txt')
ans=6×4 table
InsectSpecies InsectOrder InsectFamily PredatoryInsect
_________________________ _______________ _________________ _______________
{'Monarch Butterfly' } {'Lepidoptera'} {'Nymphalidae' } 0
{'Seven-spot Ladybird' } {'Coleoptera' } {'Coccinellidae'} 1
{'Orchid Mantis' } {'Mantodea' } {'Hymenopodidae'} 1
{'American Bumblebee' } {'Hymenoptera'} {'Apidae' } 0
{'Blue Dasher Dragonfly'} {'Odonata' } {'Libellulidae' } 1
{'Red-banded leafhopper'} {'Hemiptera' } {'Cicadellidae' } 0
保留现有列宽
将数据追加到文件底部时,保留电子表格文件的现有列宽。
用文本数据创建工作区变量,然后创建一个表作为这些变量的容器。
state = {'Massachussetts';'California';'Minnesota';'Virginia'}; stateFlower = {'Trailing arbutus';'Golden Poppy';'Pink and White Lady''s Slipper';'Flowering dogwood'}; stateBird = {'Black-capped chickadee';'California Valley Quail';'Common Loon';'Cardinal'}; data = table(state,stateFlower,stateBird);
将该表写入名为 states_funfacts.xlsx
的电子表格文件。
writetable(data,'state_funfacts.xlsx')
创建另一个包含文本数据的表。
t = table({'Maryland';'New York'},{'Black-eyed Susan';'Rose'},{'Baltimore oriole';'Eastern bluebird'});
将该表追加到现有电子表格文件中。将 'AutoFitWidth'
指定为 false
,以保留电子表格的现有列宽。
writetable(t,'state_funfacts.xlsx',"WriteMode","append","AutoFitWidth",false);
如果您将 'AutoFitWidth'
指定为 true
而不是 false
,则 writetable
将调整电子表格的列宽以适合要写入的数据,而不是保留原始列宽。
修改现有单元格格式
编辑现有电子表格文件中的行,而不保留电子表格的单元格格式。
电子表格文件 student_grades.xlsx
包含格式化的单元格。所有单元格都已填充颜色并具有边框,且标题单元格有加粗字体。
创建一个包含文本和数值数据的表。
Student = {'Mary';'John'}; Grade = [95;87]; t = table(Student,Grade)
t=2×2 table
Student Grade
________ _____
{'Mary'} 95
{'John'} 87
用输入数据的表更新现有电子表格文件。将 'PreserveFormat'
指定为 false
以忽略电子表格文件的现有单元格格式。当您这样做时,会按以下方式修改 student_grades.xlsx
。
writetable(t,'student_grades.xlsx','PreserveFormat',false);
如果在将数据写入现有电子表格文件时将 'PreserveFormat'
指定为 true
而不是 false
,则 writetable
将保留电子表格的现有单元格格式。
writetable(t,'student_grades.xlsx','PreserveFormat',true);
将表写入 XML 文件
创建一个包含数据的表,然后将其写入 XML 文件。通过指定其他名称-值参量,自定义 writetable
将表数据写入 XML 文件的方式。
创建一个包含数据的表。
InsectSpecies = {'Monarch Butterfly';'Seven-spot Ladybird';'Orchid Mantis'; ... 'American Bumblebee';'Blue Dasher Dragonfly'}; InsectOrder = {'Lepidoptera';'Coleoptera';'Mantodea';'Hymenoptera';'Odonata'}; InsectFamily = {'Nymphalidae';'Coccinellidae';'Hymenopodidae'; ... 'Apidae';'Libellulidae'}; PredatoryInsect = logical([0;1;1;0;1]); T = table(InsectOrder,InsectFamily,PredatoryInsect); T.Properties.RowNames = InsectSpecies; head(T,5)
InsectOrder InsectFamily PredatoryInsect _______________ _________________ _______________ Monarch Butterfly {'Lepidoptera'} {'Nymphalidae' } false Seven-spot Ladybird {'Coleoptera' } {'Coccinellidae'} true Orchid Mantis {'Mantodea' } {'Hymenopodidae'} true American Bumblebee {'Hymenoptera'} {'Apidae' } false Blue Dasher Dragonfly {'Odonata' } {'Libellulidae' } true
将表 T
写入名为 InsectCollection.xml
的 XML 文件。将 'WriteRowNames'
指定为 true
以写入表行的名称。行名称显示为属于输出 XML 文件中 Row
元素节点的字段。
通过将 'Insect'
指定为 'RowNodeName'
的值,自定义 XML 文件中的节点名称。
writetable(T,'InsectCollection.xml',"WriteRowNames",false,"RowNodeName","Insect")
显示 InsectCollection.xml
文件内容。
type InsectCollection.xml
<?xml version="1.0" encoding="UTF-8"?> <table> <Insect> <InsectOrder>Lepidoptera</InsectOrder> <InsectFamily>Nymphalidae</InsectFamily> <PredatoryInsect>false</PredatoryInsect> </Insect> <Insect> <InsectOrder>Coleoptera</InsectOrder> <InsectFamily>Coccinellidae</InsectFamily> <PredatoryInsect>true</PredatoryInsect> </Insect> <Insect> <InsectOrder>Mantodea</InsectOrder> <InsectFamily>Hymenopodidae</InsectFamily> <PredatoryInsect>true</PredatoryInsect> </Insect> <Insect> <InsectOrder>Hymenoptera</InsectOrder> <InsectFamily>Apidae</InsectFamily> <PredatoryInsect>false</PredatoryInsect> </Insect> <Insect> <InsectOrder>Odonata</InsectOrder> <InsectFamily>Libellulidae</InsectFamily> <PredatoryInsect>true</PredatoryInsect> </Insect> </table>
如果未将 WriteRowNames
指定为 true
,writetable
会跳过将表行名称写入文件的步骤。
输入参数
T
— 输入数据
表
输入数据,指定为表。
filename
— 文件名
字符向量 | 字符串标量
文件名,指定为字符向量或字符串标量。
根据您写入的位置,filename
可以采用以下形式之一。
位置 | 形式 | ||||||||
---|---|---|---|---|---|---|---|---|---|
当前文件夹 | 要写入当前文件夹,请在 示例: | ||||||||
其他文件夹 | 要写入不同于当前文件夹的文件夹,请在 示例: 示例: | ||||||||
远程位置 | 要写入远程位置,
根据远程位置,
有关详细信息,请参阅处理远程数据。 示例: |
如果
filename
包含文件扩展名,则写入函数基于扩展名确定文件格式。否则,写入函数会创建一个逗号分隔的文本文件,并附加扩展名.txt
。您也可以指定不带文件扩展名的filename
,然后添加'FileType'
名称-值对组参量来指示文件类型。
如果
filename
不存在,则写入函数会创建该文件。如果
filename
是一个现有文本文件的名称,则写入函数将覆盖该文件。如果
filename
是一个现有电子表格文件的名称,则写入函数会将数据写入指定位置,但不会覆盖输入数据范围之外的任何值。
数据类型: char
| string
名称-值参数
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: 'WriteVariableNames',false
指示变量名称不应作为输出文件的第一行包含在内。
WriteRowNames
— 用于写入行名称的指示符
false
(默认) | true
指示写入行名称的指示符,指定为逗号分隔的对组,包含 'WriteRowNames'
和 false
或 true
。
指示符 | 行为 |
---|---|
|
|
| 对于文本和电子表格文件, 如果 对于 XML 文件, |
DateLocale
— 用于写入日期的区域设置
字符向量 | 字符串标量
用于写入日期的区域设置,指定为逗号分隔的对组,其中包含 'DateLocale'
和一个字符向量或字符串标量。在将 datetime
值写入文件时,请使用 DateLocale
指定 writetable
写入月和星期几的名称以及缩写所用的区域设置。该字符向量或字符串采用
形式,其中 xx
_YY
xx
是用于指示语言的小写 ISO 639-1 双字母代码,YY
是用于指示国家/地区的大写 ISO 3166-1 alpha-2 代码。有关区域设置的常见值的列表,请参阅 datetime
函数的 Locale
名称-值对组参量。
当日期可以写为 Excel 格式的日期时,写入函数将忽略 'DateLocale'
参数值。
示例: 'DateLocale','ja_JP'
数据类型: char
| string
FileType
— 文件类型
'text'
| 'spreadsheet'
| 'xml'
文件类型,指定为逗号分隔的对组,其中包含 'FileType'
和一个包含 'text'
、'spreadsheet'
或 'xml'
的字符向量或字符串。
'FileType'
名称-值对组必须与 filename
输入参量配合使用。如果 filename
输入参量包含标准文件扩展名,则无需指定 'FileType'
名称-值对组参量。以下标准文件扩展名由写入函数识别:
.txt
、.dat
或.csv
(带分隔符的文本文件).xls
、.xlsm
或.xlsx
(适用于 Excel 电子表格文件).xlsb
(适用于安装了 Windows Excel 的系统上支持的 Excel 电子表格文件).xml
(适用于 XML 文件)。
示例: 'FileType','spreadsheet'
数据类型: char
| string
WriteVariableNames
— 指示将变量名称写入为列标题的指示符
true
(默认) | false
指示将变量名称写入为列标题的指示符,指定为逗号分隔的对组,其中包含 'WriteVariableNames'
和 true
或 false
。
指示符 | 行为 |
---|---|
| 写入函数将变量名称作为输出的列标题包含在内。这是默认行为。 |
| 写入函数不会在输出中包含变量名称。 |
WriteMode
— 写入模式
字符向量 | 字符串标量
写入模式,指定为以逗号分隔的对组,该对组由 'WriteMode'
和一个字符向量或字符串标量组成。根据文件类型选择一种写入模式。
文件类型 | 写入模式 |
---|---|
文本文件 |
如果您指定的文件不存在,则写入函数会创建数据并将数据写入新文件。 |
电子表格文件 |
|
当
WriteVariableNames
设置为true
时,写入函数不支持'append'
写入模式。对于电子表格文件:
当写入模式为
'append'
时,写入函数不支持Range
参数。如果您指定的文件不存在,则写入函数将执行与
'replacefile'
相同的动作。
示例: 'WriteMode','append'
数据类型: char
| string
Encoding
— 字符编码方案
'UTF-8'
(默认) | 'ISO-8859-1'
| 'windows-1251'
| 'windows-1252'
| ...
与文件关联的字符编码方案,指定为以逗号分隔的对组,其中包含 'Encoding'
和 'system'
或标准字符编码方案名称。当您没有指定任何编码时,写入函数使用 UTF-8 来写入文件。
示例: 'Encoding','UTF-8'
使用 UTF-8 作为编码。
数据类型: char
| string
Delimiter
— 字段分隔符
字符向量 | 字符串标量
字段分隔符,指定为逗号分隔的对组,由 'Delimiter'
和一个字符向量或字符串标量组成,该字符串标量包含以下设定符之一:
设定符 | 字段分隔符 |
---|---|
| 逗号。这是默认行为。 |
| 空格 |
| 制表符 |
| 分号 |
| 垂直条 |
您只能将 'Delimiter'
名称-值对组用于带分隔符的文本文件。
示例: 'Delimiter','space'
数据类型: char
| string
QuoteStrings
— 用于写入引用文本的指示符
"minimal"
(默认) | "all"
| "none"
用于写入引用文本的指示符,指定为 "minimal"
、"all"
或 "none"
。
如果
QuoteStrings
是"minimal"
,则该函数会将包含分隔符、换行符或双引号字符的任何变量用双引号字符引起来。如果
QuoteStrings
是"all"
,则该函数会将所有文本、分类、日期时间和持续时间变量用双引号字符引起来。如果
QuoteStrings
是"none"
,则该函数不会使用双引号字符将变量引起来。
您只能将 QuoteStrings
名称-值参量用于带分隔符的文本文件。
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
。
UseExcel
在非交互式自动化环境中不受支持。
AutoFitWidth
— 自动调整列宽
true
(默认) | false
自动调整列宽,指定为 true
或 false
。如果指定值为 0
或 false
,则 writetable
不会自动调整列宽以适应单元格中的数据。
示例: 'AutoFitWidth'
,0
PreserveFormat
— 保留单元格格式
true
(默认) | false
保留现有电子表格的单元格格式,指定为 true
或 false
。如果您指定 false
,writetable
将不会保留电子表格的单元格格式。格式包括字体、单元格边框和着色单元格等元素。
将 datetime
数据写入电子表格文件时,必须将 'PreserveFormat'
和 'UseExcel'
名称-值对组都设置为 true
,才能保留现有单元格的格式。如果将 'UseExcel'
设置为 false
,同时将 'PreserveFormat'
设置为 true
,则当将 datetime
数据写入文件时,writetable
不会保留文件的现有单元格格式。
示例: 'PreserveFormat'
,false
AttributeSuffix
— 属性后缀
'Attribute'
(默认) | 字符向量 | 字符串标量
属性后缀,指定为以逗号分隔的对组,由 'AttributeSuffix'
和指示输入表中的哪些变量名称要作为属性写入输出 XML 文件的字符向量或字符串标量组成。
例如,对于输入表中的变量名称 AttName_att
,您可以指定 'AttributeSuffix','_att'
来指示使用 'AttName'
作为输出 XML 文件中的属性来写出。
如果未指定
'AttributeSuffix'
,writetable
默认将后缀为'Attribute'
的变量作为属性写入输出 XML 文件中。如果指定为
'AttributeSuffix'
的值的变量与追加到输入表中变量名称的后缀匹配,则该后缀会从输出 XML 文件的变量名称中删除。例如,如果指定'AttributeSuffix','_att'
,则输入表中名为MyField_att
的变量将对应于 XML 文件中名为MyField
的属性。
示例: 'AttributeSuffix','_att'
RowNodeName
— XML 行节点名称
'row'
| 字符串数组
XML 行节点名称,指定为以逗号分隔的对组,由 'RowNodeName'
和字符向量或字符串标量组成,写入函数将其作为与输入表中的行对应的输出 XML 文件中的节点名称写入。如果未指定 RowNodeName
,则写入函数会将 'row'
作为输出表中的行节点名称写入。
示例: 'TableNodeName','RootName'
TableNodeName
— XML 根节点名称
'table'
(默认) | 字符向量 | 字符串数组
XML 根节点名称,指定为以逗号分隔的对组,由 'TableNodeName'
和字符向量或字符串标量组成,写入函数将其作为输出 XML 文件中的根节点名称写入。如果未指定 TableNodeName
,则写入函数会将 'table'
作为输出表中的根节点名称写入。
示例: 'TableNodeName','RootName'
局限性
writetable
不支持写入嵌套表。在写入之前,对嵌套表使用splitvars
将多列变量拆分为单列变量。
提示
在电子表格文件中创建空工作表:使用
writetable
以写入空表的形式在电子表格文件中创建一张空工作表。例如,创建一张名为'MySheetName'
的空工作表。或者创建三张空工作表,分别称为writetable(table(),'empty.xls','Sheet','MySheetName')
'Sheet1'
、'Sheet2'
和'Sheet3'
。writetable(table(),'empty.xls','Sheet',3)
算法
如果
'WriteVariableNames'
和'WriteRowNames'
逻辑指示符均为true
,则writetable
函数会将属性T.Properties.DimensionNames
的第一个维度名称作为输出第一列的列标题。Excel 将
Inf
值转换为65535
。MATLAB® 将NaN
、NaT
和<undefined>
分类值以及<missing>
字符串值转换为空单元格。对于 Excel 文件,
writetable
将以 Excel 日期格式写入包含datetime
数组的table
变量。如果table
包含年份在 1900 或 1904 之前的datetime
数组,writetable
将以文本形式写入变量。有关 Excel 日期的详细信息,请参阅 Excel 中的 1900 和 1904 日期系统之间的差异。有些情况下,
writetable
函数会创建一个不能准确表示T
的文件。当您使用readtable
来读取该文件时,会注意到这一点。生成的表可能不具备与原始表相同的格式或内容。如果您需要保存表并在以后检索它以便与具有相同数据和组织形式的原始表精确匹配,则将其另存为 MAT 文件。在以下情况下,writetable
会编写一个不精确的表:写入文本文件时,
writetable
使用long g
格式输出数值变量,并将分类变量或字符变量作为不带引号的字符输出。对于拥有多于 1 列的变量,
writetable
将一个唯一标识符追加到变量名称,以用作列标题。对于拥有多于 2 个维度的输出变量,
writetable
将这些变量以二维形式输出,后继维度折叠。例如,writetable
将一个 4 x 3 x 2 的变量以 4 x 6 的大小输出。对于
cell
数据类型的变量,writetable
将每个元胞的内容作为一行,以多个字段输出。如果是数字、逻辑、字符或分类以外的内容,则writetable
输出一个单独的空字段。
版本历史记录
在 R2013b 中推出
另请参阅
table
| readtable
| writecell
| writetimetable
| writematrix
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)