本文研究如何将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循环一个个地写入单元格数据。这样做的后果就是,如果要写入很多单元格,那就会在进程中重复的打开关闭表格文件,导致整个过程变得很慢。
最好的做法就是将变量打包成一个单元数组一次性写入表格中。
4 总结
本文研究如何将Matlab变量的内容写入Excel表格,以及相关的一些技巧。