Classes for controlling OriginLab instances using the OLE / COM interface
npm install origin-nodewinax (node-activex) library and wrapped using the OLEContainer class, which most other classes inherit from. They then implement the class functionality using async functions and add further helpful methods, e.g. for finding worksheets by long name.Type conversion will be handled by winax most of the time; unless otherwise stated, it should be fine.
Application class, or more importantly, the inheriting classes ApplicationSI (using a running OriginLab instance) and ApplicationCOMSI (using a newly created instance). Following code illustrates usage for searching a worksheet by LongName and updating the formula for the second column
``
import {ApplicationSI} from "origin-node";
... in an async context:
// Connects to an existing OriginLab session
let app = new ApplicationSI();
let worksheet = await App.FindWorksheetByLongname("r-01_FeW_Si-1_4MeV#1.dat");
if (worksheet) {
console.log("Worksheet found!");
await worksheet.Execute('csetvalue col:=2 formula:="5,34848*A+13,03793";');
}
`
However, while async getters (a.k.a. await worksheet.LongName) are possible in JavaScript, there is no such syntax for async setters. Therefore, separate methods for setters are added using ${propertyName}Set as naming scheme.
Example usage: await Worksheet.${propertyName}Set (newValue).