matlab 显示表格化,[转载]matlab窗口中显示excel表格的问题

刚刚在恒润论坛看到的,感觉还不错,跟踪中……

http://www.hirain.com/forum/dispbbs.asp?boardID=1&ID=301

% -----------------------------

ycnzh 发言:

请教关于matlab窗口中显示excel表格的问题

因程序需要显示大量的结果分析数据,想到用excel交互,但希望能将excel中表格的指定区域在MATLAB的窗体中显示,而不是将Excel的界面整个显示出来,不知用什么方法比较好。曾试过用ActiveX和DDE,可惜只知道能将Excel的整个界面打开或者获得指定区域的数据,但不能在matlab产生的窗体界面中显示excel表格的指定区域,百思不得其解。还望高手指点。

如果能有好的显示表格的界面制作方法,希望能赐教,不胜感激。谢谢!

% -----------------------------

wgcui 发言:

在MATLAB中,目前还没有一个现成的显示表格的控件,一种方法是使用现有的控件来拼凑出表格样子,一个现成的例子就是随Runtime Server 带的例子:~matlabtoolboxruntimeexamplesamortsched.m,它使用了datagrid.m显示表格数据。

还有一种方式,是通过ActiveX控件,比如Micorsoft Flex Grid控件实现。

%-----------------------------

ycnzh 发言:

谢谢您的回复。我现在也是这样考虑的。我曾试着用画图的方法画出表格,虽然也能说得过去,终究不是很美观,用起来也不是很方便。用ActiveX控件是目前来说较好的选择,您说的这个控件是比较方便的一个。我正在调试,对于datagrid.m文件我再找找看。谢谢您的指点。关于matlab中使用ActiveX控件的问题,帮助中讲的比较笼统,比如,如何获得控件包含的属性,如何得到控件的ProgID等等,哪里有这方面较为详细的资料,还望您能再指点一下。谢谢!

% -----------------------------

wgcui 发言:

下面是我摸索出来的一个例子,你可以试一下。

figure('pos',[100 100 600 400]);

h=actxcontrol('MSFlexGridLib.MSFlexGrid.1',[0 1 400 400]);

nrow = 3;

ncol = 4;

data = rand(nrow,ncol); % you can adapt this line

h.Rows = nrow+1;

h.Cols = ncol+1;

for i=1:nrow

for j=1:ncol

h.Row = i;

h.Col = j;

h.Text = num2str(data(i,j));

end

end

使用get(h)获得控件的属性

使用invoke(h)获得控件的方法

使用events(h)获得控件的事件

上面的例子,就是通过get(h)得到的信息凑出来的。我用ActiveX的经验也不多,希望大家多多交流。

%-----------------------------

ycnzh 发言:

现在这个问题已经解决,我用了另外一个ActiveX控件,因为有的机器上Micorsoft Flex Grid控件没有注册,不能直接使用,不过您的提示很有启发。另外,向您推荐一本书,《MATLAB应用程序接口用户指南》,刘志俭编著,2000年出版。该书中对ActiveX控件编程介绍的相对来说比较详细。

对于ActiveX编程,感觉对于不同程序间进行接口还是很方便的,尤其对于界面制作,matlab本身带有的界面控件比较少,如果界面想做的精致必须另想办法。我觉得ActiveX控件是很好的选择之一。可惜对于ActiveX编程刚刚起步,所知甚少,和matlab配合使用时困难重重。尤其在matlab中,无法获得ActiveX控件各属性以及方法和事件的详细说明,比如get命令获得属性列表后,有些属性能猜出个大概,但很多属性不知道能起什么作用,invoke命令获得的方法也是如此。摸索着尝试实在效率低下。就我遇到的问题,现在看来其实不难,如果ActiveX控件的属性和方法等有详细的帮助,应该很快可以解决,而我在您的指点的基础上还用了将近三天的时间才基本解决。绝大多数时间用在对属性设置等方面的尝试上了。看来最好还是能有ActiveX控件的详细帮助文档配合,才是最佳方案。可是这些帮助文档哪里能找到?也许是要对ActiveX编程技术深入了解才行。希望以后能和多交流,共同进步。

再次感谢您的指点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值