npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@equapro/omnis-xlsx

v0.0.6

Published

Omnis Studio JavaScript worker module for [SheetJS](https://sheetjs.com).

Readme

omnis-xlsx

An Omnis Studio JavaScript Worker module built on top of SheetJS for reading and writing spreadsheet files (Microsoft Excel, LibreOffice/OpenOffice).

API

The module exposes four methods:

| Method | Description | |--------------------------|------------------------------------------------------------------------------------------| | write(writeParam) | Synchronously writes a spreadsheet file. | | read(readParam) | Synchronously reads a spreadsheet file and returns its contents. | | writeAsync(writeParam) | Asynchronously writes a spreadsheet file using Node.js promises. | | readAsync(readParam) | Asynchronously reads a spreadsheet file using Node.js promises and returns its contents. |

Non-blocking methods (async) are recommended for large files.

writeParam

| Property | Type | Required | Description | |---------------|-------------------|:--------:|-----------------------------------------------------------------------------------------------------------------------| | filename | string | ✓ | Full path of the spreadsheet file to create. | | data | Array<Array<*>> | ✓ | Data to write. Each nested array represents a row. | | sheetName | string | | Worksheet name. Default: Sheet1. | | dateIndexes | Array<Object> | | Columns to convert to Excel dates (e.g. [{ col:1, format:"dd/mm/yyyy" }, { col:3, format:"dd/mm/yyyy hh:mm:ss" }]). | | rowHeader | Array<string> | | Header row written before the data. |

readParam

| Property | Type | Required | Description | |-------------|----------|:--------:|--------------------------------------------------------------------------| | filename | string | ✓ | Full path of the spreadsheet file to read. | | sheetName | string | | Worksheet to read. If omitted or not found, the first worksheet is used. |

Dates

Date values must be provided as ISO 8601 strings (for example, using Omnis omnisToISO8601). The date and time are interpreted exactly as provided, with no UTC conversion or timezone adjustment, and are converted directly to the corresponding Excel serial date value.

Usage

Create an object (e.g. oXlsx) whose superclass is .OW3.OW3 Worker Objects\JAVASCRIPTWorker.

Write

# local variables
#   - loXlsx        Object     Subtype oXlsx
#   - lstData       List
#   - lstHeaders    List

Do loXlsx.$init() Returns #F
Do loXlsx.$start() Returns #F

Do loXlsx.$write(lstData,lstHeader,'/path/to/file.xlsx')
## oXlslx.$write

# parameters
#   - pData         List       Data to write
#   - pHeader       List       Column headers (optional)
#   - pPath         String     Full path to the output file
#   - pSheetName    String     Worksheet name (optional - Default: "Sheet1")
# variables
#   - lParam        Row        Parameters passed to the JavaScript Worker

Do lParam.$cols.$add('filename',kCharacter,kSimplechar)
Do lParam.$cols.$add('sheetName',kCharacter,kSimplechar)
Do lParam.$cols.$add('data',kList)
Calculate lParam.filename as pPath
Calculate lParam.sheetName as pSheetName
Calculate lParam.data as pData
If pHeader.$linecount
  Do lParam.$cols.$add('rowHeader',kList)
  Calculate lParam.rowHeader as pHeader
End If

Do $cinst.$callmethod('xlsx','write',lParam,kTrue)

Read

Do loXlsx.$init() Returns #F
Do loXlsx.$start() Returns #F

Do loXlsx.$read('/path/to/file.xlsx',lstData)
## oXlslx.$read

# parameters
#   - pFilename     String            Full path to the input file
#   - pList         Field reference

Do lParam.$cols.$add('filename',kCharacter,kSimplechar)
Calculate lParam.filename as pFilename

Do $cinst.$callmethod('xlsx','read',lParam,kTrue,lErreurText)

If pList.$colcount
  # pList is defined
  Do pList.$merge(iReadList)
Else
  # pList is undefined
  Calculate pList as iReadList
End If


## oXlslx.$methodReturn

# parameters
#   - wReturn       Row        Parameters received from the JavaScript Worker
# local variables
#   - lJson         Binary
# instance variable
#   - iReadList     List

If 'read'=wReturn.__method
  Do OJSON.$listorrowtojson(wReturn.data) Returns lJson
  Do OJSON.$arrayarraytolist(json) Returns iReadList
End If

nmp registry

https://www.npmjs.com/package/@equapro/omnis-xlsx

A GitHub Action automatically publishes the package to npmjs.com.

The workflow is triggered whenever a tag matching the format vX.Y.Z is pushed.