Main Content

xlswrite

(不推荐)写入电子表格文件

不推荐使用 xlswrite。请改用 writetablewritematrixwritecell。有关详细信息,请参阅兼容性注意事项

说明

xlswrite(filename,A) 将矩阵 A 写入 Microsoft® Excel® 电子表格工作簿 filename 中的第一个工作表,从单元格 A1 开始写入。

示例

xlswrite(filename,A,sheet) 将数据写入指定的工作表。

xlswrite(filename,A,xlRange) 将数据写入工作簿的第一个工作表中由 xlRange 指定的矩形区域内。使用 Excel 范围语法,例如 'A1:C3'

xlswrite(filename,A,sheet,xlRange) 将数据写入指定的工作表和范围。

示例

status = xlswrite(___) 支持上述语法中的任何输入参量,且可返回写入操作的状态。当操作成功时,status 为 1。否则,status 为 0

[status,message] = xlswrite(___) 还在结构体 message 中返回写入操作生成的任何警告或错误消息。

示例

全部折叠

将 7 元素向量写入 Excel® 文件。

filename = 'testdata.xlsx';
A = [12.7 5.02 -98 63.9 0 -.2 56];
xlswrite(filename,A)

将混合文本和数值数据写入 Excel® 文件,从 Sheet2E1 开始写入。

filename = 'testdata.xlsx';
A = {'Time','Temperature'; 12,98; 13,99; 14,97};
sheet = 2;
xlRange = 'E1';
xlswrite(filename,A,sheet,xlRange)

输入参数

全部折叠

文件名,指定为字符向量或字符串。

如果 filename 不存在,xlswrite 将创建一个文件,并基于指定的扩展名确定相应格式。要创建与 Excel 97-2003 软件兼容的文件,请指定扩展名 .xls。要创建 Excel 2007 格式的文件,请指定扩展名 .xlsx.xlsb.xlsm。如果未指定扩展名,xlswrite 将使用默认扩展名 .xls

示例: 'myFile.xlsx'"myFile.xlsx"

示例: 'C:\myFolder\myFile.xlsx'

示例: 'myFile.csv'

数据类型: char | string

输入矩阵,指定为二维数值数组、字符数组或字符串数组,也可以指定为元胞数组(如果每个元胞包含一个元素)。

如果 A 为包含数值标量或文本之外的内容的元胞数组,则 xlswrite 会以静默方式将电子表格中的相应单元格保留为空。

数组 A 的最大大小取决于关联的 Excel 版本。有关 Excel 设定和限制的详细信息,请参阅 Excel 帮助。

示例: [10,2,45;-32,478,50]

示例: {92.0,'Yes',45.9,'No'}

示例: "ABCDEF"

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell

工作表名称,指定为下列值之一:

  • 包含工作表名称的字符向量或字符串。名称不能包含冒号 (:)。要确定电子表格文件中工作表的名称,请使用 xlsfinfo

  • 指示工作表索引的正整数。

如果 sheet 不存在,xlswrite 将在工作表集合末尾添加一张新工作表。如果 sheet 为大于工作表张数的索引,则 xlswrite 将追加空工作表,直至工作簿中的工作表数等于 sheet。在任一情况下,xlswrite 都将生成一条警告,指示已添加新工作表。

数据类型: char | string | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

矩形范围,指定为字符向量或字符串。

使用两个对角指定 xlRange,这两个对角用来定义要写入的区域。例如,'D2:H4' 表示工作表上两个角落 D2H4 之间的 3×5 矩形区域。xlRange 输入不区分大小写,并使用 Excel A1 引用样式(请参阅 Excel 帮助)。xlswrite 不能识别命名范围。

  • 如果未指定 sheet,则 xlRange 必须包括两个角落和一个冒号字符,甚至对于单个单元格(例如 'D2:D2')也是如此。否则,xlswrite 会将输入解释为工作表名称(例如 'D2')。

  • 如果指定了 sheet,则 xlRange 只能指定第一个单元格(例如 'D2')。xlswrite 从该单元格开始写入输入数组 A

  • 如果 xlRange 大于输入数组 A 的大小,则 Excel 软件将使用 #N/A 填充该区域的其余部分。如果 xlRange 小于 A 的大小,则 xlswrite 仅将适应 xlRange 的子集写入到该文件。

数据类型: char | string

输出参量

全部折叠

写入操作的状态,返回为 1 (true) 或 0 (false)。写入操作成功时,status1。否则,status0

写入操作期间生成的错误或警告,返回为包含两个字段的结构体数组:

message警告或错误消息的文本。
identifier消息标识符。

局限性

  • 当尝试写入 CSV 文件时,xlswrite 函数不支持写入包含不同数据类型的元胞数组。

  • 如果您的计算机没有安装 Windows® 版 Excel 或您正在使用 MATLAB® Online™,则 xlswrite 函数:

    • 将数组 A 写入逗号分隔值 (CSV) 格式的文本文件。A 必须为数值矩阵。

    • 忽略 sheetxlRange 参量。

    当 COM 服务器(Excel 的典型安装的一部分)不可用时,此限制也适用。

提示

  • 如果您的计算机中安装有 Microsoft Office 2003 软件,但需要创建 Excel 2007 格式的文件,请安装 Office 2007 兼容包。

  • Excel 和 MATLAB 可以将日期存储为表示这些日期的文本(例如 '10/31/96')或日期序列值(例如 729329)。如果数组包括日期序列值,请使用 datestr 将这些日期转换为其文本表示形式,然后再调用 xlswrite

  • 要将数据写入到自定义格式的 Excel 文件(例如字体或颜色),请直接使用 actxserver 而不是 xlswrite 访问 Windows COM 服务器。例如,此 MathWorks Support Answer 使用 actxserver 在 MATLAB 和 Excel 之间建立连接、将数据写入工作表,并指定单元格的颜色。

算法

Excel 将 Inf 值转换为 65535。MATLAB 将 NaN 值转换为空单元格。

版本历史记录

在 R2006a 之前推出

全部折叠

R2019a: 不推荐使用 xlswrite

不推荐使用 xlswrite。请改用 writetablewritematrixwritecell。目前没有删除 xlswrite 的计划。

从 R2019a 开始,请改用 writetablewritematrixwritecell。与 xlswrite 函数相比,writetablewritematrixwritecell 函数具有更好的跨平台支持和性能。

下表显示了 xlswrite 的典型用法,以及如何更新代码以改用 writetablewritematrixwritecell

不推荐

推荐

xlswrite(filename,M)

要将表格数据写入电子表格,请改用以下选项之一。

写入表:

writetable(T,filename)

写入矩阵:

writematrix(M,filename)

写入元胞数组:

writecell(C,filename)