本文研究如何将Matlab变量的内容写入Excel表格,以及相关的一些技巧。

1 函数

写入Excel表格的函数比较简单,只有一个函数如下:

xlswrite(filename,A,sheet,xlRange)

其中的参数含义如下:

参数含义
filename文件名,可以是绝对路径也可以是相对路径
A写入表格文件的变量
sheet写入的工作表
xlRange写入的单元格区域

该函数的用法比较灵活,除了将四个参数都填上以外,也可以选填其中的几个参数。例如:

xlswrite(filename,A)

如果只有filename和A两个参数,那么Matlab就会默认把A填写在文件filename的活动工作表内,从A1开始填写。

2 简单示例

打开Matlab,直接在命令行输入如下语句。

xlswrite('demo.xlsx','123','sheet1','A2');

然后在Matlab的工作区就会看到生成了一个xlsx文件:demo.xlsx。注意,如果路径下已经存在了demo.xlsx文件,就会直接写入文件,而不是新建一个。
在这里插入图片描述
打开该文件,在工作表sheet1中就会看到从A2单元格开始,横着分别写入了’1’,‘2’,'3’三个数字。
在这里插入图片描述
至此,这个小的demo就演示完成了。

3 写入表格的注意点

3.1 写入单个单元格

在第二章的例子中,把‘123‘三个数分别写到三个单元格中了。但是如果我想把’123’这个字符串写到A2一个单元格中怎么办呢。只要把函数写成下面的样子,也就是第二个参数写成元胞数组。

xlswrite('demo.xlsx',{'123'},'sheet1','A2');

这样,函数就会把123这个字符串作为一个整体写入A2中了。
在这里插入图片描述

3.2 写入多个单元格

写入多个单元格也很简单,只要在第二个参数的元胞数组中加上多行多列就行。例如:

>> A = {'123','456';'789','123'}

A =

  2×2 cell 数组

    {'123'}    {'456'}
    {'789'}    {'123'}

>> xlswrite('demo.xlsx',A,'sheet1','A2');

这样,就会在表格中从A2单元格开始,写入元胞数组的内容。
在这里插入图片描述

3.3 写入0开头的数字

如果写入的数子是0开头的,例如010000,通过以下函数写入。

>> xlswrite('demo.xlsx',{'010000'},'sheet1','A2');

那么打开表格后会发现,开头的数字0没有了,只剩下了10000。
在这里插入图片描述
解决的办法也很简单,加两个单引号在变量前面就行了。

>> xlswrite('demo.xlsx',{'''010000'},'sheet1','A2');

这样的话,表格会把这个单元格的内容作为文本看待。
在这里插入图片描述

3.4 指定所有的四个参数

在第二章节说的4个参数最好全都指定,不要让matlab帮你做决定。不然容易出现一些混乱。

3.5 避免用for循环

博主刚开始写脚本的时候用for循环一个个地写入单元格数据。这样做的后果就是,如果要写入很多单元格,那就会在进程中重复的打开关闭表格文件,导致整个过程变得很慢。

最好的做法就是将变量打包成一个单元数组一次性写入表格中。

>>返回个人博客总目录

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐