[话题讨论] MATLAB如何对Excel单元格进行快速颜色填充

[复制链接]
打浦桥程序员 发表于 2019-8-24 14:33:24
本帖最后由 打浦桥程序员 于 2019-8-24 14:35 编辑

在Excel中随机生成一万个数据,并对这一万个数据划分16档进行上色

我采用的方法是,通过MATLAB对Excel的目标区域进行条件格式定义,对于16种不同的数值区间进行单元格颜色设置,一共只循环16次,耗时1.8秒

而如果直接对这一万个数据,逐一进行判断并在Excel单元格中进行颜色设置,那么一万次for循环总耗时为23.9秒,是前一种方式所消耗时间的13倍多。
实现代码在帖子底部,有兴趣的朋友,欢迎关注我的微信公众号"打浦桥程序员",谢谢
  1. excel = actxserver('Excel.Application');
  2. wb = excel.Workbooks.Add;
  3. excel.Visible = true;
  4. Data=rand(200,50);
  5. wb.Worksheets.Item('Sheet1').Range('A1:AX200').value = Data;
  6. Range = excel.Worksheets.Item(1).Range('A1:AX200');
  7. xlCellValue = 1;
  8. xlGreater = 1;
  9. for i = 0:1:15
  10.     ColorEle = [dec2hex(i),'8'];
  11.     ColorEle = [ColorEle,ColorEle,'FF'];
  12.     Range.FormatConditions.Add(xlCellValue,xlGreater,['=',num2str(1/16*i)], ['=',num2str(1/16*(i+1))]);
  13.     Range.FormatConditions.Item(i+1).Interior.Color = hex2dec(ColorEle);
  14. end
复制代码

作者介绍 | 打浦桥程序员
汽车行业工程师
目前在德国从事系统工程
公众号“打浦桥程序员
和你一起用MATLAB的角度看世界

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

4 条回复


zwlbeyond 发表于 2019-8-30 08:14:23

    ColorEle = [dec2hex(i),'8'];

错误: 文本字符无效。请检查不受支持的符号、不可见的字符或非 ASCII 字符的粘贴。

打浦桥程序员 发表于 2019-8-31 13:07:37
zwlbeyond 发表于 2019-8-30 08:14
    ColorEle = [dec2hex(i),'8'];

错误: 文本字符无效。请检查不受支持的符号、不可见的字符或非  ...

这是论坛页面的问题,代码本身没有问题,把ColorEle前面的大空格删了吧

victori_m02Ol 发表于 2019-11-22 19:58:10
本帖最后由 victori_m02Ol 于 2019-11-22 20:02 编辑

你好, 请问这个上色的深浅是什么决定的呢?可以按照数值的大小决定颜色的深浅吗?数值越大,颜色越深

提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表