利用Matlab对指定条件下的excel单元格填充颜色

1. 主要思路为matlab建立服务端并结合Excel的Worksheets.Item property对单元格颜色进行填充,主体代码如下:

     rgb = [255 0 0];e = actxserver('Excel.Application');%这里是建立服务端('Excel.Application'是指excel的服务端,和上面打开表格不重复不矛盾)                                        ewb = e.Workbooks.Open("C:\Users\吴宇航\Desktop\新建文件夹\8月份日排产-成品.xls");ewb.Worksheets.Item(1).Range(poistion).Interior.Color =rgb*256.^(0:2)';%红色ewb.Save;                                                               ewb.Close(false);e.Quit;e.delete;

该代码是matlab建立服务端后对指定路径的excel文件按照指定位置将单元格颜色填充为红色,其中positon是代指单元格的位置例如:A1、B2,因此关键性问题是如何得到单元格位置

2.我们需要令满足条件的excel表格填充颜色,因此需要用到for循环,循环行数与列数对相应位置的数值值进行判断,在满足我们的条件时,获得excel的行数和列数,并将列数由数值转换为A、B、C…,将行数由数值转换为字符’1’、‘2’,并用strcat(列,行)进行拼接,得到’A1’、‘B2’…,即可得到position

3.利用上述思路对指定条件下的excel单元格填充颜色

(1)此时需要用到两个自定义函数,第一个函数如下:

function str=letter2char(num)s=num+64;str=char(s);%因为char(65)=A
end

上述自定义函数可以实现由1转化为A,第二个自定义函数如下:

function s=lettertoxls(Integer0)%matlab中的函数定义if (Integer0<=26)   %若只有单个字母s=letter2char(Integer0); %转化成字母elseif(Integer0<=702 && Integer0>26)%不止单个字母,比如AA,BF等。702刚好到两位的最后一个列号:ZZInteger1 = fix(Integer0/26);%取商if mod(Integer0,26)==0Integer1 = fix(Integer0/26)-1;%避免出现从AY直接到BZ的现象endwhile(Integer0>26)Integer0=Integer0-26;enda=letter2char(Integer1);b=letter2char(Integer0);s=strcat(a,b);end
end

该函数考虑了列数可能出现两个字母同时出现的可能,例如:AA、AB…

(2)主函数如下,导入数据后,根据自己的excel数据循环行数和列数(注意matlab中数据的行数和列数的位置可能与excel中数据的行数与列数的位置不对应),在满足条件时,输出该数据对应的位置,再利用matlab建立服务端,结合Excel的Worksheets.Item property对相应位置的单元格进行填充,实现效果如图所示

clear;
[data,str]=xlsread("C:\Users\吴宇航\Desktop\新建文件夹\8月份日排产-成品.xls");%这里打开是为了在表格中筛选符合条件的数据
e = actxserver('Excel.Application');%这里是建立服务端('Excel.Application'是指excel的服务端,和上面打开表格不重复不矛盾)
ewb = e.Workbooks.Open("C:\Users\吴宇航\Desktop\新建文件夹\8月份日排产-成品.xls");
rgb = [255 0 0];
for i=1:66  %数据寻找范围for j=1:25  %数据寻找范围(注意不能超过一开始读入的范围)if mod(i,2)==0&&(data(i,j)>0)str2=int2str(i+1);%int to str行数当作字符lie=lettertoxls(j+3);%列转换成ABC这样子poistion=strcat(lie,str2);%字符串连接函数,[列,行],如A1单元格,这里只能用strcat拼接,若果用[]拼接,形成的是str类型,不适用于下文Range中参数类型,而strcat拼接出来的是cell。ewb.Worksheets.Item(1).Range(poistion).Interior.Color = rgb*256.^(0:2)';%红色endend
end
ewb.Save;
ewb.Close(false);
e.Quit;
e.delete;

参考文章:https://www.cnblogs.com/Hello-world-hello-lazy/p/15228690.html

如何利用Matlab对指定条件下的excel单元格填充颜色相关推荐

  1. java excel条件格式_Java 使用条件格式高亮Excel单元格

    通常Excel文档包含了很多行和列,为了方便查看和分析其中的数据,我们可利用条件格式将某些符合特定要求的数据高亮显示出来.比如,高亮低于或高于平均值的数值.高亮最高值或最低值.高亮重复或唯一的数值.本 ...

  2. c 语言len函数,巧妙利用LEN、SUBSTITUTE函数,计算EXCEL单元格内某重复字符个数

    实际的工作中,我们有时候会用到求某个单元格内某个字符个数的实际问题.对于这类问题,在深入的学习了EXCEL函数之后,或者看过我写的部分文章后,一般会很容易的给出解决答案,但有时候一些朋友往往还不能举一 ...

  3. ABAP利用OLE2_OBJECT实现将数据输出到Excel单元格

    REPORT  ZEXCEL_ZLT. INCLUDE OLE2INCL. ****定义OLE对象**** DATA: APPLICATION TYPE OLE2_OBJECT, "定义EX ...

  4. VC下设置Excel单元格的边框

    为了能使得输出到Excel中的数据显示表格,可以调用事先设置好的模板,但是不灵活.我花了一个中午的时间摸索出如何设置它了. 具体代码如下: LPDISPATCH pRange;  CString   ...

  5. java 批量设置单元格边框,VC下设置Excel单元格的边框 (转)

    为了能使得输出到Excel中的数据显示表格,可以调用事先设置好的模板,但是不灵活.我花了一个中午的时间摸索出如何设置它了. 具体代码如下: LPDISPATCH pRange; CString   c ...

  6. excel单元格数字对比及输入条件自动筛选

    excel单元格数字对比 在b1单元格中输入以下公式,再下拉填充到b6即可. =iF(oR(mid(a1,1,1)="*",mid(a1,1,1)=mid($c$8,1,1)),i ...

  7. HTML表格颜色按条件填充,Excel单元格能否根据条件填充颜色?

    回答: 以Excel2010为例,可用条件格式的"使用公式确定要设置格式的单元格"来实现. 1.打开Excel,如下图所示输入要设置不同的颜色的A列的数据: 2.选中要填充颜色的B ...

  8. 计算机函数sumif求平均值,SUMIF在指定条件下求平均值

    SUMIF函数实现按指定条件求平均值 Excel2003中的条件求和SUMIF函数非常实用,例如在年级段总成绩表中计算某科教师所教的所有班级成绩的平均分(如5到8班化学老师的平均分),就可以利用如下方 ...

  9. matlab节点连通率,利用matlab仿真最小发射功率下wsn的连通性和覆盖率.docx

    利用matlab仿真最小发射功率下wsn的连通性和覆盖率.docx 江南大学物联网ZK1/5一题目利用MATLAB仿真最小发射功率下WSN的连通性和覆盖率.二目的(1)在固定节点个数的前提下,仿真求得 ...

  10. 如何计算满足指定条件下数值的平均值——DAVERAGE函数的使用

    DAVERAGE函数的介绍: >>主要功能:用于计算满足数据库或者数据清单中指定条件下数值的平均值. >>格式参数:DAVERAGE(database,field,criter ...

最新文章

  1. 下载.Net 4源码
  2. 在蓄电池管理系统中计算机应用,汽车电器与电子技术.docx
  3. SpringMVC中JSONP的基本使用
  4. xtrabackup备份mysql_配置xtrabackup备份mysql数据库
  5. ubuntu 将 python 设定为python3, pip设定为pip3
  6. Web前端_项目实践01_萌娃摄影网页(纯HTML+CSS静态页面)
  7. mysql 数据库事务处理_MySQL数据库事务及其原理
  8. teamviewer 可用设备上限_2020:抚州办公楼采暖设备种类齐全
  9. 【简报】kube框架结构-一个小型响应式CSS框架
  10. LeetCode 5382. HTML 实体解析器
  11. 阿里Java开发手册思考(二)
  12. 常见的电子商务模式理解
  13. [转载] Python元组操作及方法总结
  14. mysql8导入不同schme_新特性解读 | MySQL 8.0.22 任意格式数据导入
  15. YAML和JSON对比
  16. 同时合并多个视频,并添加转场特效
  17. docker进程管理(1号进程,僵尸进程详解)
  18. 2020计算机保研夏令营网信中心华师大浙软面经
  19. Cisco NAT --- ip nat enable NVI方式
  20. 青龙面板快s极速版(本地)

热门文章

  1. OpenKG开源系列 | 面向知识的推理问答编程语言KoPL(清华大学)
  2. 手机端APP抓包环境的探索(安卓模拟器)
  3. Air780E模块PPP应用开发指南
  4. PPT图片虚化效果要怎样实现?
  5. video-js rtmp直播、this .el_vjs_getproperty问题、多个rtmp播放、可用rtmp地址
  6. B站视频保存到本地电脑的步骤
  7. Chrome上关于微信网页版WeChat不能正常登录的解决方案
  8. 硬盘盘符拒绝访问-问题和解决办法
  9. SPSS——连续变量的描述统计
  10. android flutter教程,Android开发 学习Flutter 入门