zoukankan      html  css  js  c++  java
  • 用matlab对excel中数据选择性染色

    在网上找了n久,都没有找到实现这个功能的代码,于是结合各位大佬提供的功能码块,自己拼接出了具有:能够选择指定excel表中满足某个算术条件的单元格,并且对其染色的脚本
    欢迎纠错,另外有小伙伴拓展了其他功能的话,欢迎留言在评论区~

    • 数字转字母的函数letter2char:
    function str=letter2char(num)
    s=num+64;
    str=char(s);%因为char(65)=A
    
    • 需要分块的函数lettertoxls:
    function s=lettertoxls(Integer0);%matlab中的函数定义
        if (Integer0<=26)   %若只有单个字母
            s=letter2char(Integer0); %转化成字母
        elseif(Integer0<=702 && Integer0>26)%不止单个字母,比如AA,BF等。702刚好到两位的最后一个列号:ZZ
            Integer1 = fix(Integer0/26);
            while(Integer0>26)
                Integer0=Integer0-26;
            end
            a=letter2char(Integer1);
            b=letter2char(Integer0);
            s=strcat(a,b);
        end
    end
    
    • 选择并染色:
    clear;
    [a,b,c]=xlsread("C:UsersHUAWEIDesktop4.xlsx");%这里打开是为了在表格中筛选符合条件的数据
    for i=1:50  %数据寻找范围
        for j=1:29  %数据寻找范围(注意不能超过一开始读入的范围)
            if(a(i,j)>=100)
                str2=int2str(i);%int to str行数当作字符
                lie=**lettertoxls**(j);%列转换成ABC这样子
                poistion=strcat(lie,str2);%字符串连接函数,[列,行]。如A1单元格
             **   %这里只能用strcat拼接,若果用[]拼接,形成的是str类型,不适用于下文Range中参数类型,而strcat拼接出来的是cell。**
                rgb = [255 0 0];
                e = actxserver('Excel.Application');%这里是建立服务端('Excel.Application'是指excel的服务端,和上面打开表格不重复不矛盾)                                        
                ewb = e.Workbooks.Open("C:UsersHUAWEIDesktop4.xlsx");
                ewb.Worksheets.Item(1).Range(poistion).Interior.Color = rgb*256.^(0:2)';%红色
                %poistion不加引号
                ewb.Save;                                                               
                ewb.Close(false);
                e.Quit;
                e.delete;
             end
         end
     end
    
    • 实现效果

    这篇文章,是又一个故事的结束...
    lazy's story is continuing.
  • 相关阅读:
    cf 1452E. Two Editorials(中点排序)
    cf 888G
    cf 1447E. Xor Tree(二进制分治)
    2020ICPC·小米 网络选拔赛第一场 E-Phone Network (线段树)
    cf 1447D. Catching Cheaters ( 最大子段和思想 dp )
    POJ
    cf 1437F.Emotional Fishermen(计数dp)
    霍夫丁不等式
    切比雪夫不等式
    霍夫丁不等式引理证明
  • 原文地址:https://www.cnblogs.com/Hello-world-hello-lazy/p/15228690.html
Copyright © 2011-2022 走看看