文件交换的选择

我们最好的用户提交

使用ActiveX控制Excel

汪东城本周的选择X系列通过Yvan Lengwiler

我的日常工作是客户工程师培训。我去拿那些从来没有使用MATLAB或仿真软件,他们觉得舒适的应用在日常工作的工具。万博1manbetx肯定是一个有益的作用。

最近我在MATLAB基础培训课程,我收到了一些问题关于如何用MATLAB和Microsoft®Excel®之间交换数据。在培训中,我们谈论之类的函数xlsreadxlswrite。这个人想要控制格式的细胞的能力,xlswrite不提供。具体来说,他想要改变一个列的宽度和一些细胞的颜色。我指出他的功能actxserver,它提供了一种方式连接到Windows®应用程序使用ActiveX。一旦连接到Excel,他可以使用的各种api所提供的Excel来定制。参考页面actxserver有一个连接到Excel的示例。

我开始浏览文件交换,希望寻找更多的例子,我可以为人们使用actxserverExcel。果然,我发现不少条目,包括这一个由我们自己(和许多其他人)布雷特Shoelson。我选择突出Yvan X收藏,因为他提供了一套在Excel函数用于执行各种简单的任务,使用ActiveX。他使用直观的函数名,如XConnect,XOpenBook,XAddSheet。这些函数的各种处理(Excel应用程序、工作簿或工作表)作为输入,所以很容易理解的功能是相互关联的。事实上,如果你在MATLAB编辑器中打开文件,您可以将光标的句柄变量看一看他们是如何使用或创建。编辑器将强调相同的变量,所以你可以很容易地找出他们使用的地方。

我改进的一个建议是将其转换成一个类,而不是一套功能。自然,这些函数将处理处理代表Excel应用程序,作业本、工作表。每个人都可以是一个类,每个类可以包含方法具体操作类的实例。这将使功能除了看不见类实例。你不需要捕获错误造成无效处理输入。当然,你可能仍然需要捕捉其他可能发生的错误。创建一个类,在这种情况下的另一个理由是隐藏(封装)实际的处理。的hExcel回来XConnect是一个COM.Excel_Application

hExcel = XConnect ()
hExcel = COM.Excel_Application

这处理暴露用户各种Excel应用程序提供的方法和属性。

也许这可能是好是坏,但目的是为用户使用此套件提供的功能,而不是那些本地可用。通过创建一个类,保持内部处理财产,保护用户免受滥用处理。

尽管如此,这是一个很好的套件连接MATLAB和Excel的功能。我不做正义Yvan条目如果我不提及他创造的真正动机。如果你需要反复读或写一个Excel文件,xlsreadxlswrite将性能下降,因为重复连接/断开它与Excel的做。与Yvan XCollection,你连接到Excel,做必要的读/写操作,断开一次。

注意,Yvan条目不提供培训客户的功能要求,但我向他指出这条目作为起点。

评论

Yvan提供了如何使用函数的详细文档。给这一个尝试,让我们知道你的想法在这里或者离开评论Yvan。




发表与MATLAB®R2015a

|

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。