Main Content

将数据写入 Excel 电子表格

将表格数据写入到电子表格文件

要将工作区中的表导出到 Microsoft® Excel® 电子表格文件中,请使用 writetable 函数。您可以将工作区中的数据导出到文件中的任何工作表,以及导出到该工作表中的任何位置。默认情况下,writetable 将表数据写入到文件中的第一张工作表,并从单元格 A1 处开始。

例如,创建一个包含列向数据的样本表,并显示前五行。

load patients.mat
T = table(LastName,Age,Weight,Smoker);
T(1:5,:)
ans=5×4 table
      LastName      Age    Weight    Smoker
    ____________    ___    ______    ______

    {'Smith'   }    38      176      true  
    {'Johnson' }    43      163      false 
    {'Williams'}    38      131      false 
    {'Jones'   }    40      133      false 
    {'Brown'   }    49      119      false 

将表 T 写入到名为 patientdata.xlsx 新电子表格文件中的第一张工作表,并从单元格 D1 处开始。要指定您想要写入到的工作表部分,请使用 Range 名称-值对组参量。默认情况下,writetable 将表变量名称写入为电子表格文件中的列标题。

filename = 'patientdata.xlsx';
writetable(T,filename,'Sheet',1,'Range','D1')

将不带变量名称的表 T 写入名为 'MyNewSheet' 的新工作表。要写入不带变量名称的数据,请将名称-值对组 WriteVariableNames 指定为 false

writetable(T,filename,'Sheet','MyNewSheet','WriteVariableNames',false);

将数值和文本数据写入到电子表格文件

要将数值数组和元胞数组导出到 Microsoft® Excel® 电子表格文件,请使用 writematrixwritecell 函数。您可以将单个数值工作区变量和文本工作区变量中的数据导出到文件中的任何工作表,以及导出到工作表中的任何位置。默认情况下,导入函数将矩阵数据写入到文件中的第一张工作表,并从单元格 A1 处开始。

例如,创建一个由数值数据组成的样本数组 A,以及一个由文本和数值数据组成的样本元胞数组 C

A = magic(5)
C = {'Time', 'Temp'; 12 98; 13 'x'; 14 97}
A =

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9


C = 

    'Time'    'Temp'
    [  12]    [  98]
    [  13]    'x'   
    [  14]    [  97]

将数组 A 写入名为 testdata.xlsx 的新电子表格文件中第一张工作表上的 5×5 矩形区域 E1:I5

filename = 'testdata.xlsx';
writematrix(A,filename,'Sheet',1,'Range','E1:I5')

将元胞数组 C 写入到名为 Temperatures 的工作表上的一个矩形区域(从单元格 B2 处开始)。可以仅使用第一个单元格指定范围。

writecell(C,filename,'Sheet','Temperatures','Range','B2');

writecell 将会显示警告,因为工作表 Temperatures 之前不存在,但您可以禁用此警告。

添加新工作表时禁用警告

如果文件中不存在目标工作表,则 writetablewritecell 函数将会显示以下警告:

Warning: Added specified worksheet.

有关如何隐藏警告消息的信息,请参阅隐蔽警告

Excel 文件中的单元格设置格式

要将数据写入到 Windows® 系统上具有自定义格式(例如字体或颜色)的 Excel 文件,请直接使用 actxserver 而不是 writetablewritetimetablewritematrixwritecell 访问 COM 服务器。例如,技术解决方案 1-QLD4K 使用 actxserver 在 MATLAB® 和 Excel 之间建立连接,将数据写入工作表,以及指定单元格的颜色。

有关详细信息,请参阅Get Started with COM

另请参阅

| |