用途:Spreadsheet Link 通过 COM 把 Excel 连接到本地 MATLAB,实现数据双向交换、从 Excel 执行 MATLAB 命令,并以 MATLAB 作为计算引擎。适用于把 Excel 数据导出到 MATLAB 工作区变量、把 MATLAB 变量导回 Excel 单元格或 VBA 变量、在 VBA 宏或单元格公式中运行 MATLAB 命令、把 MATLAB 图形作为图片导入 Excel。不适用于纯 MATLAB 工作流、Python/.NET 集成(应使用 MATLAB Engine API)或 Web 服务部署(应使用 MATLAB Production Server)。
主要能力:有两套并行 API。MLPutMatrix/MLGetMatrix 直接操作工作表区域,MLGetMatrix 为排队执行;MLPutVar/MLGetVar 操作 VBA 变量,MLGetVar 立即执行。另有 MLPutRanges 导出全部命名区域、MLEvalString 执行 MATLAB 命令、MLAppendMatrix 追加数据、MLGetFigure 导入当前图形、MatlabRequest 处理排队的 MLGetMatrix/MLGetFigure。
使用要点:VBA 宏中若含 MLGetMatrix 或 MLGetFigure,必须以 MatlabRequest 结尾;仅用 MLGetVar 则不需要。MLGetMatrix 的单元格地址是字符串,如 "G1";MLGetFigure 需先 Range("I1").Select,只接受宽、高缩放两个参数。不要新建 .m 文件,MATLAB 逻辑用 MLEvalString 表达。日期先原样导出,再在 MATLAB 中用 datetime(..., 'ConvertFrom', 'excel') 转换。变量名须为合法 MATLAB 标识符。
限制:仅 Windows(依赖 MATLAB COM Server),执行宏前 MATLAB 必须已运行,需在 VBA 编辑器 Tools→References 勾选 SpreadsheetLink。COM 传输大数据可能较慢。可用 MLOpen、MLClose、MLAutoStart、MLUseFullDesktop、MLStartDir、MLShowMatlabErrors 等配置函数调整行为。