在学习项目的过程中,遇到一些需要对excel表进行操作的工作,于是想到了使用matlab这个软件来实现。
1、首先要读取excel内容
为了存excel中的表项,采用的读取excel方式为:[num,txt] = xlsread('excel的文件名',‘读取的excel的数据范围’);
示例代码如下:
[num,txt] = xlsread('results','H2:AK31');%result即为表名
上面的代码中,txt 是一个数组,数组的每个元素都是一个cell,需要将它转化成字符串string,转化操作只需要在cell元素后面添加一个{1}即可,代码示例如下:
for i = 1 : m
for j = 1: n
t1 = txt(i,j);%获得每个表项的内容,以包元cell的形式存放。
t2 = t1{1};%将包元转换成字符串
end
end
2、操作每个表项的数据
通过上面的步骤我们获得每一项的字符串,但是我们还是需要每个字符串的第几项数据的,由于每个字符串都是一个数组,我们想要第几项数据还是比较轻松的吧^_^
如果这是一个1X36的字符串,假如读取第3项,可以直接用:字符串名(1,3),也可以使用:字符串名(3:3)的方式;如果读取的是第7-9项,那么可以使用:字符串名(7:9)的方式进行读取。
比如本人首先需要判断该表项字符串是否是‘休息’,然后再决定读取相应的数据,但取出来仍然是字符串哦,想获得数值型数据,可用str2double(待转换字符串名),就将字符串转换double类型的数据了。示例代码如下:
for i = 1 : m
sumHours = 0; % 保存总工时
for j = 1: n
t1 = txt(i,j);%获得每个表项的内容,以包元cell的形式存放。
t2 = t1{1};%将包元转换成字符串
if strcmp(t2(1:2) , '休息') ~= 1
sumHours = sumHours + str2double(t2(7:9));
end
end
end
3、保存数据
将计算获得的数据,保存到excel的某些个表项位置,使用的matlab函数为xlswrite('excel文件名字',要写的内容,'表格范围'),代码示例如下:
xlswrite('REPORT(revised)',c,'C2:AF49');%第一个参数是文件,第二个是要写入的内容,第三个是表格范围
至此,大功告成。