Main Content

本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

xlswrite

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

不推荐使用 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消息标识符。

局限性

  • 如果您的计算机没有安装 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 值转换为空单元格。

兼容性考虑

全部展开

从 R2019a 起不建议使用

在 R2006a 之前推出