使用 Excel GUI 编译 Matlab 应用程序的选项

Posted

技术标签:

【中文标题】使用 Excel GUI 编译 Matlab 应用程序的选项【英文标题】:Options to compile a Matlab application with Excel GUI 【发布时间】:2012-07-24 15:36:31 【问题描述】:

我正在使用 Excel 上的 GUI 为自己和其他人开发一个 Matlab 应用程序(为了便于使用,但也因为需要在 Excel 中完成一些数据处理)。

为简化起见,以下是构成我的应用程序的所有部分

第 1 部分:带有运行设置的 Excel GUI 第 2 部分:创建数据结果和图像的 Matlab 程序 第 3 部分:带有 Matlab 数据和图像结果的 Excel GUI 以及额外的 Excel 数据处理

目前,当别人需要使用时,他们给我运行设置(Part 1),我为他们运行Matlab程序(Part 2 )并给他们数据、图像和我最后的 Excel GUI(第 3 部分)。


我正在尝试通过结合上述部分来改善这种情况。我看到 2 个选项

选项 1:从 Excel(电子表格链接 EX 工具箱)运行 Matlab,因此将第 1 部分和第 2 部分放在一起 => 对我来说会更多(我有 Matlab,我可以通过运行我的 Matlab 代码看到更多信息) 选项 2:全部打包:第 1+2+3 部分在可执行文件中(MATLAB 编译器工具箱) => 适用于我的最终用户(不需要 Matlab)

现在我的问题

    我可以(我应该吗?我不应该?)两个选项都做吗?还是我把一切都复杂化了?并且根本不应该使用 Excel 链接工具箱? 我是否需要 Matlab Builder EX 来实现选项 2? (因此创建一个加载项)或者我也可以使用工具箱来实现这一点:Excel Link + Compiler? (没有外接程序,但有 VBA 代码?)

干杯!

【问题讨论】:

您可以从 Excel 运行 MATLAB(电子表格链接 EX)、从 MATLAB 运行 Excel(COM 自动化),或者使用 MATLAB GUI 部署一个独立的应用程序,将所有结果导出为 Excel 文件(MATLAB 编译器)。我想这取决于你喜欢哪一个 感谢您的回答!我可以将在 Excel(电子表格链接 EX)中运行的 MATLAB 和编译器解决方案结合起来吗? 还有一个问题:使用编译器,我还能在 Excel 中运行我的所有宏吗?还是仅适用于“电子表格链接 EX”解决方案? 【参考方案1】:

如果您选择使用 MATLAB 编译器,以下是我想象的步骤

在 MATLAB 中创建一个 GUI。它将呈现一个界面,允许用户输入一些设置。它还有一个“运行”按钮,可以使用这些参数运行您的 MATLAB 程序。

在算法结束时,使用 COM 自动化打开 Excel,并以编程方式将上一步的结果填充到表格中。您可以将任何生成的 MATLAB 图形和绘图的快照添加到 excel 文件中(参见here 示例)或简单地保存为单独的图像文件。您甚至可以将 VBA 宏添加到工作表中。

将上述内容部署为独立应用程序。它不依赖于 MATLAB(用户只需安装免费提供的 MCR 运行时)。

用户运行您的应用程序,并使用它来生成 Excel 文件。现在,用户可以选择打开此文件,并手动执行任何最终数据操作。

如果您想要额外的集成,您可以使用“Spreadsheet Link EX”工具箱。

HTH

【讨论】:

回答的很详细!谢谢!所以我可以使用“Spreadsheet Link EX”工具箱然后编译它。我可以通过这种方式使用 Excel 作为输入设置的界面。但是我想我必须从 Matlab 运行 VBA 宏...? @Nico:我自己更倾向于 MATLAB,我会在 MATLAB 中编写整个接口,并将所需的任何处理实现为 MATLAB 函数。 Excel 仅用于打开生成的报告文件。如果用户想要自定义输入设置,他们可以再次运行程序并在 MATLAB GUI 中指定它们。当然,将其部署为独立的可执行文件,您的最终用户根本不需要拥有或使用 MATLAB。我不得不提一下,我以前从未使用过“电子表格链接 EX”工具箱,所以我不知道它如何与 MATLAB 编译器结合使用。【参考方案2】:

有一个很好的答案可以回答我的问题。 MATLAB Compiler vs MATLAB Coder

基本上

对于 R2014b 及更早版本:可以使用“MATLAB Builder EX for Excel”工具箱生成 Excel 插件

R2015a(最新版本):工具箱“MATLAB Compiler”现在可以生成 Excel 插件

这大大简化了事情!

尼科(回答他自己的问题:-))

【讨论】:

以上是关于使用 Excel GUI 编译 Matlab 应用程序的选项的主要内容,如果未能解决你的问题,请参考以下文章

哪些问题会导致已部署的 Matlab 应用程序不写入 excel 文件?

matlab gui粘贴

使用 64 位 win 和 MATLAB 为 win 32 系统编译 matlab gui

在matlab GUI中table读取EXCEL数据,为总提示为空?

如何从不需要机器上的 Matlab 编译器运行时 (MCR) 的 matlab gui 生成可执行文件

在 Matlab 独立 GUI.exe 中包含多个文件夹(包含图像、脚本等)