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.