簡體   English   中英

使用Javascript將MATLAB作為COM自動化服務器

[英]MATLAB as COM Automation Server with Javascript

我正在嘗試使用MathWorks網站上建議的COM自動化服務器在Matlab和Javascript(我的案例中的打字稿)程序之間建立連接。 網站上的文檔包含MS創建的某些語言的示例,而不是javascript。

我似乎無法找到很多關於如何與JS建立這種COM連接的信息。 從我讀過的,它是一個舊的Microsoft功能,僅用於Internet Explorer。

問題
我正在編寫的程序是VS代碼擴展,因此我根本不使用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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM