Giter Site home page Giter Site logo

netdde's Introduction

NetDDE

A JavaScript implementation of the NetDDE protocol.

The goal with this package is to be able to exchange data with a Windows computer running the server side of Chris Oldwood's DDE Network Bridge from a Node.JS program. NetDDE's terminology and limitations apply here.

Usage

For a detailed API specification please check the generated JSDoc

const { NetDDEClient, Constants } = require('netdde');

let excel = new NetDDEClient('EXCEL', { host: '127.0.0.1' /*, port: 8888 */ });
excel.connect().then(async () => {

    //gets the content of cell A2 on Sheet1
    console.log(await excel.request('Sheet1', 'r2c1'));
    //gets the content of the range A1:C4 on Sheet1
    console.log(await excel.request('Sheet1', 'r1c1:r4c3'));

    //writes 'Hello World!' on cell B42
    console.log(await excel.poke('Sheet2', 'r42c2', Constants.dataType.CF_TEXT, 'Hello World!'));

    //execute a command (simulate it's being typed on the keyboard)
    console.log(await excel.execute('System', "I'm a cell content\r\n"));

    //listen for changes on an item (cell A1)
    await excel.advise('Sheet 1', 'r1c1', Constants.dataType.CF_TEXT);
    excel.on('advise', d => {
        console.log(`Cell on ${d.item} of ${d.topic} changed to ${d.data}`);
    });
    //stop listening to changes on it
    await excel.stopAdvise('Sheet 1', 'r1c1', Constants.dataType.CF_TEXT);

    //this gets emitted when a topic disconnects (sheet is closed, for example)
    excel.on('topic_disconnect', topic => {
        /* Note this will be fired only for existing
           conversations, that is, something has been
           already send over this topic*/
        console.log(`${topic} is not there anymore :(`);
    });

    //get emitted when the connection closes, regardless the reason
    excel.on('close', () => console.log('Bye!'));

    //closes all running conversations and disconnect
    await excel.disconnect();
});

References

This node was created by Smart-Tech as part of the ST-One project.

Special thanks to Chris Oldwood's work shared to the community!

License

Copyright: (c) 2019, Smart-Tech, Guilherme Francescon Cittolin [email protected]

GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)

netdde's People

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.