分发加载项并集成到 Microsoft Excel 中
要创建 Microsoft® Excel® 加载项,请参阅从 MATLAB 创建 Excel 加载项。
创建 Excel 加载项后,请按照以下步骤将该加载项部署到另一台计算机上。
验证您是否已收到部署所需的所有文件。
安装 MATLAB® Runtime。
使用生成的安装程序、
_install.bat安装脚本或mwregsvr注册您的加载项 DLL。使用
mwcomutil.dll注册实用工具库mwcommgr.dll和mwregsvr。在 Excel 中安装加载项。
直接在工作表中调用加载项函数。
(可选)使用 Function Wizard 或自定义 VBA 代码创建宏。
Excel 加载项部署的文件
如果您使用 Excel 加载项编译器创建了 Excel 加载项,或者使用 compiler.package.installer 创建了安装程序,请将生成的安装程序分发给最终用户。安装程序安装 Excel 加载项和 MATLAB Runtime,并在目标计算机上注册加载项 DLL。Excel 加载项编译器还生成一个名为 _install.bat 的安装脚本,该脚本注册加载项 DLL。若要不使用安装程序或脚本来注册 DLL,请参阅注册加载项和 COM 组件以下。
如果您未创建安装程序,请分发 MATLAB Compiler™ 在输出文件夹中生成的以下文件。
| 文件 | 描述 |
|---|---|
_install.bat | 注册生成的 |
filename.bas | 可以导入到 VBA 工程中的 VBA 模块文件。 |
filename.xla | 可以直接添加到 Excel 的 Excel 加载项。您不需要同时使用 |
filename_2_0.dll | 需要使用 |
安装 MATLAB Runtime
MATLAB Runtime 包含在无需 MATLAB 许可副本的目标系统上使用已编译 MATLAB 代码所需的库。有关说明,请参阅下载并安装 MATLAB Runtime。
Windows® 版 MATLAB Runtime 安装程序会自动设置系统路径并注册 Excel 加载项所需的 MATLAB Runtime DLL。要手动执行这些步骤,请参阅在网络驱动器上部署应用程序和 MATLAB Runtime。
注册加载项和 COM 组件
注意
MATLAB Compiler 和 MATLAB Compiler SDK™ 中均使用 COM 组件,因此一些与构建和打包 COM 组件和加载项有关的说明可以在产品之间共享。
当您创建 COM 组件时,它会根据您的登录特权在 HKEY_LOCAL_MACHINE 或 HKEY_CURRENT_USER 中注册。
如果您发现由于 Microsoft 或您的安装所施加的安全标准而需要更改运行时权限,则可以在部署 COM 组件或加载项之前执行以下操作之一:
运行 COM 组件或加载项之前以
administrator身份登录在运行 COM 组件或加载项之前运行以下
mwregsvr命令,如下所示:其中:mwregsvr [/u] [/s] [/useronly] project_name.dll
/u允许任何用户取消注册此服务器的 COM 组件或加载项/s静默运行此命令,不生成任何消息。这对于静默安装很有帮助。/useronly仅允许当前登录的用户在此服务器上运行 COM 组件或加载项
小心
如果您的 COM 组件在 USER 配置单元中注册,则在启用了 UAC (User Access Control) 的系统上以 administrator 身份运行的 Windows Vista® 或 Windows 7 用户将看不到它。
如果您在 Windows 7 或 Windows Vista 下将组件注册到 USER 配置单元,则在以提升的 (administrator) 特权运行时,您的 COM 组件可能无法加载。
如果发生这种情况,请执行以下操作将组件重新注册到 LOCAL MACHINE 配置单元:
用以下命令取消注册该组件:
mwregsvr /u /useronly my_dll.dll
使用以下命令将组件重新注册到
LOCAL MACHINE配置单元:mwregsvr my_dll.dll
注册 MATLAB 实用工具库
为了处理数据转换,您使用 MATLAB Compiler 生成的 VBA 代码引用了 mwcomutil.dll 和 mwcommgr.dll 实用工具库。要注册这些库:
打开系统命令提示符
导航到
,其中matlabroot\bin\win64matlabroot代表与您用于编译 MATLAB 加载项的 MATLAB 版本相对应的 Excel 或 MATLAB Runtime 的位置。运行以下命令:
mwregsvr mwcomutil.dll
mwregsvr mwcommgr.dll
安装 Excel 加载项
按照适合您的 Excel 版本的步骤在 Microsoft Excel 中安装该加载项。
Excel 2010 或更新版本
在 Excel 中,点击文件选项卡。
在左侧导航窗格中,选择选项。
在“Excel 选项”对话框的左侧导航窗格中,选择加载项。
在“管理”下拉列表中,选择 Excel 加载项,然后点击转到。
在“加载项”对话框中,点击浏览。
浏览到您的加载项并选择它。点击确定。
在 Excel 加载项”对话框中,验证是否选择了包含加载项的条目。点击确定。
Excel 2007
启动 Microsoft Excel。
点击 Office 按钮 (
) 并选择 Excel 选项。在“Excel 选项”对话框的左侧窗格中,点击加载项。
在“Excel 选项”对话框的右侧窗格中,从管理下拉列表中选择 Excel 加载项。
点击开始。
点击浏览。
浏览到您的加载项并选择它。点击确定。
在 Excel 加载项”对话框中,验证是否选择了包含加载项的条目。点击确定。
在 Excel 电子表格中使用 MATLAB 函数
在 Excel 中安装该加载项后,可以通过 Excel 自定义函数形式的方法调用直接调用该加载项函数。
可选择使用 Excel 宏指定输入和输出单元格、一次执行多个函数或处理多个输出。使用 MATLAB Compiler 提供的 Function Wizard 加载项创建宏。要获得其他功能,请使用自定义 VBA 代码创建或修改宏。
直接在电子表格中调用方法
要在 MATLAB 电子表格中运行 Excel 函数,请在目标输出单元格中使用方法调用来调用该函数。例如,如果您部署了名为 mymagic.m 的 MATLAB 代码或名为 mymagic.fig 的图形,则通过在电子表格的单元格中输入以下函数来调用该代码:
=mymagic()
如果您的函数返回一个数组,请选择一个单元格范围以匹配数组大小。
提示
如果方法调用没有立即执行,请同时按 Ctrl、Shift 和 Enter。
使用 Function Wizard 创建 Excel 宏
Function Wizard 提供了一个控制面板,用于使用一个或多个已编译的 MATLAB 函数创建宏。使用 Function Wizard 控制 MATLAB 输入和输出数据在 Excel 工作表中的放置。
有关详细信息,请参阅安装和使用 Function Wizard。
使用 VBA 创建 Excel 宏
使用 VBA 代码创建具有比 Function Wizard 所允许的更多功能的 Excel 宏。您可以使用变量、循环、表单、控件和其他编程技术来创建自定义 Excel 程序。
有关使用 VBA 代码创建自定义图形 Excel 应用程序的示例,请参阅使用 Visual Basic 表单控件实现用户界面。