MATLAB as COM Automation Server with Javascript



我正在尝试按照MathWorks网站上的建议,使用COM自动化服务器在Matlab和Javascript(在我的例子中是打字稿)程序之间建立连接。网站上的文档包含由MS创建的某些语言的示例,而不是javascript的示例。

我似乎找不到很多关于如何与JS建立这种COM连接的信息。从我所读到的内容来看,这是一个旧的Microsoft功能,仅用于Internet Explorer。

问题
正在编写的程序是VS Code扩展,因此我根本没有使用Internet Explorer。因此,我不相信我可以使用ActiveXObjects。

问题
有没有另一种方法可以在我的打字稿代码和 Matlab 实例之间建立连接?

目标我
正在尝试从VS Code终端运行Matlab文件,而无需打开自定义Matlab终端或完整的Matlab GUI。输出也应显示在 VS Code 终端中。在MacOS和Linux上,我可以简单地使用CLI工具,但由于Windows版本和MacOS/Linux版本之间的差异,这在Windows上是不可能的。

我不太怎么使用TypeScript,而且我做的很少,那是很久以前的

新东西。但是,NPM 包 win32ole 可以在 NodeJS 中使用,所以我假设您也可以在 Typescript 中使用它(也许对示例进行一些小的修改,或者一个小的包装器)。

Win32ole NPM 页面

这是该页面中的一个示例,演示如何与 Excel 交互以创建和保存工作表。

try{
var win32ole = require('win32ole');
// var xl = new ActiveXObject('Excel.Application'); // You may write it as:
var xl = win32ole.client.Dispatch('Excel.Application');
xl.Visible = true;
var book = xl.Workbooks.Add();
var sheet = book.Worksheets(1);
try{
sheet.Name = 'sheetnameA utf8';
sheet.Cells(1, 2).Value = 'test utf8';
var rg = sheet.Range(sheet.Cells(2, 2), sheet.Cells(4, 4));
rg.RowHeight = 5.18;
rg.ColumnWidth = 0.58;
rg.Interior.ColorIndex = 6; // Yellow
var result = book.SaveAs('testfileutf8.xls');
console.log(result);
}catch(e){
console.log('(exception cached)n' + e);
}
xl.ScreenUpdating = true;
xl.Workbooks.Close();
xl.Quit();
}catch(e){
console.log('*** exception cached ***n' + e);
}

最新更新