Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.
I am the chief technical officer at InVision App, Inc - a prototyping and collaboration platform for designers, built by designers. I also rock out in JavaScript and ColdFusion 24x7.
Meanwhile on Twitter
Loading latest tweet...
Ben Nadel at NCDevCon 2011 (Raleigh, NC) with: Anthony Mineo

POI Utility Now Has ColdFusion MX7 Compatible Tags (Thanks Dan Wilson!)

By Ben Nadel on
Tags: ColdFusion

I am happy to announce that the newest build of the POI Utility ColdFusion custom tags for creating highly formatted Microsoft Excel documents in ColdFusion now includes a ColdFusion MX7 compatible version. Dan Wilson of nodans.com has taken the existing tab library and retrofitted it to work with ColdFusion MX7. This is now included in a sub-directory of the latest build (coldfusion_mx7). Going forward, I will do my best to maintain this version of the tag library in parallel with any new updates that I make.

As a minor note, thanks to a suggestion by Dan Guy, I have also added the ability to set the print orientation of each Sheet tag.




Reader Comments

Am I crazy? It looks like a few files here use REMatch(), which in CF7, gives:

Variable REMatch is undefined.

The error occurred in
path\CSSRule.cfc: line 376

Reply to this Comment

You're not crazy, Spencer - I found the same issue. One quick workaround is to comment out the entire poi:class tag if you don't need the css classes.

Reply to this Comment

Hey guys, I am working on fixing this. It should be relatively straightforward, I just haven't had the time.

Reply to this Comment

There's more incompatible with CFMX7 than REMatch. Javacast(''Short") is CF8 only (sheet.cfm) and so is VARIABLES.ColumnsTag.ColumnIndex++ (column.cfm).

I finally got it working except for the styles. Would this FUNCTION allow it to work with CFMX7?
http://badassery.blogspot.com/2007/01/coldfusion-regex-support-udfs-rematch.html

I am glad that Adobe is making strides to add shortcuts to CF8, but I wish that they would update CFMX as it is still in use and CF8-only scripts are in abundance.

Reply to this Comment

It is possible to expand the date formats to support mm/dd/yyyy ?

Also, is there a way that I am not seeing to support formulas?

If I set a cell as =SUM(E4:E6) the formula shows in the document as text, but if I go to the formula builder and hit enter it calculates.

This is wonderful as is, but of course if I could figure out how to add formulas it would be even sweeter.

Reply to this Comment

It's very powerful tools for cf to create the excel.

But, can be support the "UTF-8" or "UTF-16" format?

Thanks very much..

Reply to this Comment

Hi Ben,

I just wanted to say that this Utility has made my life 100 times easier.

Thank you so much for providing it,
-Lyle

Reply to this Comment

Kudos from me too. At the moment I'm working on a project requiring output to multi-sheet XLS files, and the POI utility is just the ticket. Thanks to Ben and everybody involved.

Reply to this Comment

Im a novice coldfusion user and Im very happy use POI Utility, there are a minor bugs,

in CFMX 7:
a) Invalid CFML construct found
VARIABLES.ColumnsTag.ColumnIndex

Change Column.cfm line 109
from:
<cfset VARIABLES.ColumnsTag.ColumnIndex = VARIABLES.ColumnsTag.ColumnIndex++ />
to:
<cfset VARIABLES.ColumnsTag.ColumnIndex = (VARIABLES.ColumnsTag.ColumnIndex + 1) />

b) JavaCast Type Short must be one of the following types ("int","long","float","double","boolean","string")

Change Sheet.cfm line 139 and 140
from:
JavaCast( "Short", ...
to:
JavaCast( "int", ...

c) Variable REMatch is undefined.
Change inside your cfm document...

Remove:
"border-bottom".. or "border-top" from Poi Class:
"<poi:class name="header"

that's all

Ben, Thanks very much..

Reply to this Comment

Post A Comment

You — Get Out Of My Dreams, Get Into My Comments
Live in the Now
Oops!
Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.