matlab读取excel中数据和文本混合的表项,但又要提取出数据

在学习项目的过程中,遇到一些需要对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');%第一个参数是文件,第二个是要写入的内容,第三个是表格范围 

至此,大功告成。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值