Ray Camden just approved my project over at RIAForge, so I thought it was a great oppurtunity to talk about it here. Basically, cfExcelProxy is my attempt at using Apache's POI HSSF java libraries to talk to and modify Microsoft Excel files.

Here are the available methods from the main object, cfExcelProxy.cfc:

public - newWorkbook - ( ) cfExcelProxy

Creates a new blank workbook.

public - read - ( string filename ) cfExcelProxy

Reads in an existing workbook (from file).

public - createSheet - ( string name ) cfExcelProxy

Create a new sheet in the workbook.

public - setCell - ( string sheet , numeric row , numeric cell , string value , string class ) cfExcelProxy

Set the value of a cell.

public - dumpQuery - ( string sheet , query query , numeric row , numeric cell , string headerClass , string bodyClass , string collist ) cfExcelProxy

Dump the contents of a query into a sheet, with a starting row and cell.

public - createClass - ( string className , struct props ) cfExcelProxy

Create a class for future use (with setCell).

public - getCellValue - ( string sheet , numeric row , numeric cell ) string

Returns the contents of a cell.

public - getCellRangeValueAsArray - ( string sheet , numeric startrow , numeric startcell , numeric endrow , numeric endcell ) array

Retrieve the contents of a range of cells, and return it as an array.

public - getQueryFromCells - ( string sheet , numeric row , numeric cell , boolean header ) query

Attemps to rebuild a dumped query, from a starting position.

public - autoAdjust - ( string sheet , numeric row ) cfExcelProxy

Allows to auto-adjust the width of the columns.

public - write - ( ) Binary

Returns the binary output from this workbook.

Here's the project's link up at RIAForge. Feel free to download the files and play around with them, let me know what you think and if you have any ideas / questions / suggestions / complaints / insults please let me know ;).

Edit: I changed new for newWorkbook. As Radek pointed out in the comments, new may become a reserved word in CF9. Better safe than sorry! I committed the change to the repository, and I'm just about to release the updated package up at RIAForge.