@pro4biz/activex
v1.0.7
Published
Бібліотека для використання ActiveX компонентів в Node.js
Readme
@pro4biz/activex
Бібліотека для інтеграції ActiveX компонентів у ваші Node.js та Electron застосунки
🚀 Особливості
- ✅ Прекомпільовані бінарі - встановлення без компіляції
- 🔧 Підтримка Node.js та Electron - працює з обома рантаймами
- 🏗️ TypeScript підтримка - повна типізація для кращого DX
- 🎯 Кросплатформність - підтримка x64 та ARM64 архітектур
- ⚡ Висока продуктивність - оптимізовані нативні біндінги
- 🛡️ Стабільність - базується на перевіреній бібліотеці node-activex
📦 Встановлення
npm install @pro4biz/activexyarn add @pro4biz/activexpnpm add @pro4biz/activex🎯 Використання
CommonJS
const { ActiveXObject } = require('@pro4biz/activex')
// Створення COM об'єкта
const excel = new ActiveXObject('Excel.Application')
excel.Visible = true
const workbook = excel.Workbooks.Add()
const worksheet = workbook.ActiveSheet
worksheet.Cells(1, 1).Value = 'Привіт, світ!'ES Modules
import { ActiveXObject } from '@pro4biz/activex'
// Створення COM об'єкта
const shell = new ActiveXObject('WScript.Shell')
shell.Run('notepad.exe')TypeScript
import { ActiveXObject } from '@pro4biz/activex'
interface ExcelApplication {
Visible: boolean
Workbooks: {
Add(): ExcelWorkbook
}
}
interface ExcelWorkbook {
ActiveSheet: ExcelWorksheet
}
interface ExcelWorksheet {
Cells(
row: number,
col: number
): {
Value: any
}
}
const excel = new ActiveXObject('Excel.Application') as ExcelApplication
excel.Visible = true
const workbook = excel.Workbooks.Add()
const worksheet = workbook.ActiveSheet
worksheet.Cells(1, 1).Value = 'Типізований код!'📚 Приклади використання
Робота з MS Office
const { ActiveXObject } = require('@pro4biz/activex')
// Excel
const excel = new ActiveXObject('Excel.Application')
excel.Visible = true
const workbook = excel.Workbooks.Add()
// Word
const word = new ActiveXObject('Word.Application')
word.Visible = true
const document = word.Documents.Add()
// PowerPoint
const powerpoint = new ActiveXObject('PowerPoint.Application')
powerpoint.Visible = true
const presentation = powerpoint.Presentations.Add()Системні операції
const { ActiveXObject } = require('@pro4biz/activex')
// Windows Shell
const shell = new ActiveXObject('WScript.Shell')
shell.Run('calc.exe')
// File System
const fso = new ActiveXObject('Scripting.FileSystemObject')
const file = fso.CreateTextFile('test.txt', true)
file.WriteLine('Тестовий текст')
file.Close()Робота з базами даних
const { ActiveXObject } = require('@pro4biz/activex')
// ADO Connection
const connection = new ActiveXObject('ADODB.Connection')
connection.Open('Provider=Microsoft.ACE.OLEDB.12.0;Data Source=database.accdb')
const recordset = new ActiveXObject('ADODB.Recordset')
recordset.Open('SELECT * FROM Users', connection)
while (!recordset.EOF) {
console.log(recordset.Fields('Name').Value)
recordset.MoveNext()
}🔧 Системні вимоги
- Операційна система: Windows 10/11 (ActiveX компоненти доступні тільки в Windows)
- Node.js: версія 18 або новіша
- Electron: версія 21 або новіша
- Архітектура: x64 або ARM64
📋 Підтримувані версії
Node.js
| Версія | Modules | x64 | ARM64 | | ------ | ------- | --- | ----- | | 24 | 137 | ✅ | ✅ | | 23 | 131 | ✅ | ✅ | | 22 | 127 | ✅ | ✅ | | 21 | 120 | ✅ | ✅ | | 20 | 115 | ✅ | ✅ | | 19 | 111 | ✅ | ❌ | | 18 | 108 | ✅ | ❌ |
Electron
| Версія | Modules | x64 | ARM64 | | ------ | ------- | --- | ----- | | 37 | 136 | ✅ | ✅ | | 36 | 135 | ✅ | ✅ | | 35 | 133 | ✅ | ✅ | | 34 | 132 | ✅ | ✅ | | 33 | 130 | ✅ | ✅ | | 32 | 129 | ✅ | ✅ | | 31 | 125 | ✅ | ✅ | | 30 | 123 | ✅ | ✅ | | 29 | 121 | ❌ | ❌ | | 28 | 119 | ❌ | ❌ | | 27 | 118 | ✅ | ✅ | | 26 | 117 | ✅ | ✅ | | 25 | 116 | ❌ | ❌ | | 24 | 114 | ❌ | ❌ | | 23 | 113 | ✅ | ✅ | | 22 | 110 | ✅ | ✅ | | 21 | 109 | ✅ | ✅ |
Легенда:
- ✅ - Підтримується
- ❌ - Не підтримується
⚠️ Важливі примітки
- ActiveX компоненти працюють тільки в Windows
- Деякі COM об'єкти вимагають відповідних програм (наприклад, Excel для Excel.Application)
- Завжди закривайте COM об'єкти після використання для уникнення витоку пам'яті
- У production рекомендується використовувати try-catch блоки
🐛 Відомі проблеми та рішення
Помилка "Class not registered"
// Переконайтеся, що COM компонент зареєстрований
const shell = new ActiveXObject('WScript.Shell')
shell.Run('regsvr32 /s yourcomponent.dll')Витік пам'яті
// Завжди очищуйте ресурси
const excel = new ActiveXObject('Excel.Application')
try {
// ваш код
} finally {
if (excel) {
excel.Quit()
}
}📄 Ліцензія
ISC
🏢 Автор
ПРО-рішення для бізнесу
- 🌐 Веб-сайт: p4b.com.ua
- 📧 Email: [email protected]
- 📦 NPM: @pro4biz
🙏 Подяки
Ця бібліотека базується на node-activex. Дякуємо за чудову роботу!
