Introducing NebulaXPlus

If you want to create sophisticated Excel workbooks with your Pick BASIC application, you may be using NebulaXLite. While a “lite” tool, it does satisfy most needs. If you want to do more we now have NebulaXPlus.

It’s always been my contention that when a business manager says he or she wants “Excel”, they mean they want something that makes use of the rich Excel feature set in a product that has been expanded consistently over the last 15 years. A plain text CSV file doesn’t allow for multiple sheets in a workbook. There’s no formatting, no fonts, no borders, no colors, no column width or row height settings, no merged cells, and no document properties.

I wrote NebulaXLite to help MV developers to deliver more of what people expect. XLite allows BASIC code to generate a workbook with multiple spreadsheets and all of those features above. But this is a “Lite” product because it doesn’t do other things like Images, Charts, Macros, or Pivot tables. The reason for this is that with BASIC we aren’t generating binary XLS files required to support those “objects” – we’re generating XML documents that provide a limited set of functionality defined by a XML spec. NebulaXLite developers, and their report consumers, have been mostly happy with the limited feature set for many years but all of us have been hoping to see a little more.

So I recently wrote NebulaXPlus. This software now allows us to use a document created with NebulaXLite as a base, and run it through Excel to generate a more complex file. To get this functionality, you just write your XML file somewhere. XPlus reads it, and then writes a new XLS file.

To do this, NebulaXPlus uses a server component to issue jobs to client systems which request new work. The XPlus Server issues XML, the Client uses Excel to generate an XLS file, and the results are returned for the MV developer to send to consumers.

This is based on Distributed Processing. This computing paradigm is becoming huge in the business world today, particularly because of the common acceptance of Cloud Computing. By assigning tasks to a number of computers, the burden of complex computing is removed from a single server. Yes, the NebulaXPlus Server will accept requests from any number of Clients.

Why do it like this?

Let’s say it’s reporting time and you need to get your rich Excel documents out to management. Let’s further assume that you have your own PC running a XPlus Client, where Excel will read and process all of the documents. During the day your Windows Update loads patches and recommends a system restart, which you do. But while your system is rebooting, nothing is processing those Excel documents.

The solution to this is to have more than one system processing documents whenever they’re available. If your system isn’t doing the task at the moment, some other system will. The more systems you have serving as XPlus Clients, the less you have to worry about any one system going down. If there’s no work, the Client systems continue on with their user activity without interruption.

For many years distributed computing has been used to assign packets of work across multiple systems. You may have read that in Hollywood they use this technique to generate animation for movies. And home PC’s use this mechanism to participate in the SETI@Home project and many others like it. Individual tasks to be completed by any one system may be small, but if there are many tasks, then it helps to distribute the load amongst multiple systems.

Isn’t this overkill for generating Excel docs?

Sure, it can be. But that depends on how many docs you have. If you have been reluctant to integrate with Excel because you need to generate hundreds of documents, this is a solution to that problem.

But I just want a couple spreadsheets once in a while.

You can run the XPlus Server and Client on the same system with Excel, so you have a single system doing the work, as if the distributed component didn’t exist. If you need to expand out, you have the option. It’s better to have the option and not use it than to not have the option.

NebulaXPlus is fully functional and has a complete set of docs which I will be happy to send to anyone who asks. XPlus will be offered to existing NebulaXLite users for a nominal fee. Why isn’t it free? Well, this isn’t enhancing XLite to do something new – there are more features planned for XLite itself, to be provided to users as free enhancements. XPlus enables XLite documents to do things that can’t be done with the core product.

Let’s take a closer look at the XML

I don’t want to get into too many details here, as the whole purpose of NebulaXLite is to facilitate development without the developer having to know about the underlying mechanisms. In short, Excel 2003 allowed us to work with SpreadsheetML, which defined a basic set of functionality that did not allow objects, but did allow for extensive formatting. This allows the MV developer to go way beyond plain text CSV files, but doesn’t make available all of the functionality in Excel.

With Excel 2007, another standard emerged for extended functionality: Office Open XML, also called OOXML or OpenXML. But OpenXML went through years of trials and changes, so I did not enhance NebulaXLite to use the new document format. See Wikipedia for a complete history on OpenXML. Arguably, today OpenXML is an internationally accepted standard, and in hind-sight perhaps I should have enhanced XLite to support that format, but frankly there weren’t enough people saying they needed anything beyond the features supported in XLite.

So I was hoping to find a way to add more functionality, without going through a complete re-write of XLite to support a new spec. With XPLus we now have that. And (I’ll discuss this in another blog) XPlus can be used for a Lot more.

So how does it work?

To add an image to a spreadsheet, just set the text of a cell to “IMAGE|” and some details regarding location, size, rotation, etc. Other features will be supported with similar settings. This text will be parsed out of the document so that it doesn’t affect other functionality. The details for images are in the new XPlus documentation. NebulaXLite will generate your document as always – no changes are made to the NebulaXLite software. Now just write the document to a system of your choosing in your network, in a directory referred to as the Source. The XML will be removed and a corresponding XLS file will then be found in a Target directory. From there you can do what you wish with the XLS file.

Handling is in place to ensure that if a Client accepts an XML file, but it does not complete the task, that the job will be issued to another Client.

Looking forward

NebulaXPlus will be in beta for a while as Image support is tested in the field and requests are taken for other features. As features are requested, I’ll work out whether they should be implemented in XLite or XPlus and will do my best to add functionality to either product as quickly as possible.

Inquiries are welcome.

1 thought on “Introducing NebulaXPlus

Leave a Reply