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 🙏

© 2024 – Pkg Stats / Ryan Hefner

excelabl

v0.1.0

Published

Utility to create Excel spread sheets

Downloads

9

Readme

ExcelABL

What is this?

This is an interface for creating raw Microsoft Excel spreadsheets by hooking into Microsoft's 2003 SpreadsheetML schema using the Progress (a.k.a. ABL) programming language. There is no dependancy on the Windows Excel.exe COM interface or any such ugliness. This program writes raw .xml files which will open directly in Excel when double-clicked.

How to use it

  • You will need to add the com/abevoelker path to your PROPATH, so that the Excel and XML directories will be sitting at the top-level of your PROPATH. Otherwise, Progress won't understand what these objects are when you try to instantiate them.
  • An example.p file is included that shows a simple example of creating a spreadsheet using the library. For more advanced usage, the library code is generally well commented so don't be afraid to explore.

Errata

  • The created .xml files are very large, due to the verbosity of XML in general and the weirdness of SpreadsheetML in particular. I would highly recommend compressing them if you are going to send them remotely or do some type of long-term storage.
  • For massive documents (>10k rows), you may run into some memory-related issues. A lot of this has to do with the terrible memory management of the AVM. I had pondered creating some type of CellManager object to act as a FlyWeight for creating cells, but experimenting with it proved that it did not improve things very much at all. The main problem from my testing is that the AVM seems to reserve about 5KiB per CHARACTER variable, so Cell objects eat up a lot of memory no matter how primitive I can make them. The only way to get around this is to create a better CHARACTER datatype. At that point, you are better off migrating to a real programming language. To lessen the burden, be sure to flush the Cell objects into raw LONGCHAR using one of the Worksheet's flush methods every n rows (I typically flush about every 500 rows).

Donations

As always, hard work went into creating this product. If you use it and would like me to continue producing quality software please consider donating! Thank you!

License

ExcelABL is released under the LGPLv3 license.