Spreadsheet functions are case sensitive. They must be either lower or upper (ABS(), abs(); AVERAGE(), average();), you can't user proper name (Abs(), Avg(), Hyperlink()) they will not work. |  |  |  |  |  |
Excel Function | Arguments | Example | Result | Additional Information | Sample # | Sample Text
ABS | number | "=ABS(F3)" | 23 |  | 23 | Hello World
AVERAGE | numbers_as_array | "=AVERAGE(F3:F13)" | 144.45454545454547 | Synonym: AVG | 45 | True
CEILING | number | "=CEILING(F3:F13)" | 2.345621082003618e+23 |  | 62 | False
COUNT | values_as_array | "=COUNT(F2:F13)" | 12 |  | 108 | To High
DAYSFROM | date | "=DAYSFROM(2009,4,15)" | -108 |  | 200 | To Low
DOLLAR | number | "=DOLLAR(F13)" | -$100.00 |  | 36 | Perfect
FALSE |  | "=IF(F3 < 100, TRUE(), FALSE())" | true |  | 17 | number
FIXED | number, decimals, noCommas? | "=FIXED(F3+F13)" | -77.00 | Two decimal places | 99 | numbers_as_array
FLOOR | number | "=FLOOR(F3-F4)" | -22 | Synonym: INT | 100 | values_as_array
HTML | html_as_string | "=HTML("<div style='color: red; weight: bold;'>Hello World!!!</div>")" | Hello World!!! | The value sent to the HTML function must start and end with double quotes (""). All element values must have single quotes (''). | 999 | date
HYPERLINK | url_as_string | "=HYPERLINK("http://www.jquery.com", "jQuery's website")" | jQuery's website |  | -100 | html_as_string
IF | IF(logical_test, value_if_true, value_if_false) | "=IF(F12 < 100, TRUE(), FALSE())" |  | Can have nested IF functions. | -14 | url_as_string
IMG | url_as_string | "=IMG("http://ui.jquery.com/images/logo.gif")" |  | The url can be sensitive to numbers. |  |
MAX | numbers_as_array | "=MAX(F3:F13)" | 999 |  | -21 |
MIN | numbers_as_array | "=MIN(F3:F13)" | -100 |  |  |
N | number | "=N(F3)" | 23 |  |  |
PI |  | "=PI()" | 3.141592653589793 | If you use "=PI" it will return the actual function as text, which is incorrect. Use "=PI()". |  |
TODAY |  | "=TODAY()" | Sun Dec 28 2008 10:27:07 GMT-0500 (Eastern Standard Time) |  |  |
TRUE |  | "=TRUE() || FALSE()" | true |  |  |
SUM | numbers_as_array | "=SUM(F2:F13)" | 1589 |  |  |
ROUND | number | "=ROUND(1.6)" | 2 |  |  |
RAND |  | "=RAND()" | 0.6489516688709732 | Synonym: RND |  |
Advanced Functionality |  | Example | Result | Additional Information |  |
Direct Javascript |  | "=jQuery.sheet.version" | 0.4 | The character '=' simply starts a reference to javascript. The example here interacts with the jS (or jQuery.sheet) object and calls a function that returns it's current version. |  |
Math.PI |  | "=Math.PI" | 3.141592653589793 | The Math function here is actually the javascript Math function. So in a since, you are writing javascript from the sheet. |  |
Self as Function |  | "=function(value, output) { if (isNaN(value)) { return value; } else { return output; } }" | function (value, output) { if (isNaN(value)) { return value; } else { return output; } } | function () { return this; } |  |
Call a Cell as Function | As many as you like. | "=D29(F3, F4)" | 45 | The example here is calling the above cell as a function. This makes working with sheets extremely flexible. |  |

jQuery.sheet() Settings | Description | Default | Example
urlGet | The html file that is loaded into jQuery.sheet() | "documentation.html" | $(obj).sheet({ urlGet: "mySheet.html" });
urlSave | The url for the sheet info to be saved at. | "save.html" |
editable | Makes the sheet editable. Boolean value. | true |
urlBaseCss | Location of the base css file used to configure the sheet. | "jquery.sheet.base.css" |
urlTheme | jQuery UI Themeroller css theme location used to style the sheet. | "theme/ui.theme.css" |
urlMenu | Loads the menu bar found at the top that uses jQuery.clickMenu(). If left blank, will not load menu. | "menu.html" |
urlMenuJs | Location of the jQuery.clickMenu plugin for use with the menu control. | "plugins/jquery.clickmenu.pack.js" |
urlMenuCss | Location of the jQuery.clickMenu's style file. | "plugins/clickmenu.css" |
urlScrollTo | Loads the plugin jQuery.scrollTo. Makes editing the sheet an absolute pleasure :). | "plugins/jquery.scrollTo-1.4.0-min.js" |
loading | The loading html message when jQuery.sheet() first starts. | "Loading Spreadsheet..." |
newColumnWidth | Sets the width of newly added columns. | "120px" |
ajaxSaveType | Sets the type of forums/ajax submit type. | "POST" |
buildSheet | Lets you create a new sheet. Example: '10x30' (Column count by Row count). If you use this option it cancels out urlGet. Must be separated by an "x" ("10x30") or be set to boolean false. Note: Large sheets will take some time to load. | false | $(obj).sheet({ buildSheet: "10x30" });
calcOff | Enables or disables the sheet calculations; on loadup only. Boolean value. This usually isn't needed because the values are saved when the sheet is saved. | false |
log | Enables or disables sheet log, used for debugging. Boolean value. | false |
title | Overrides the sheet's sheettitle attribute. | "" |
lockFormulas | Turns function edit off. This protects your spreadsheet's supplied functions. Note: If you create a function, after the first edit, it will no longer be editable. | false |
parent | The sheet's parent, needed for internal usage, doesn't need to change. | this |
colMargin | The width and height of standard toolbars. | "25px" |
fnBefore | Function ran just before the sheet is initialized. | function() {} |
fnAfter | Function ran after the sheet is initialized and styled. | function() {} |
fnSave | Function used for saving the spreadsheet, default is jS.saveSheet(). | function() { jS.saveSheet(); } |
fnOpen | Function used to open a spreadsheet. | function() {} |
fnClose | Function used to close the current spreadsheet. | function() {} |
Regular Initialization | Initialization with Options |  |

$(document).ready(function() {
$(selector).sheet();
});

$(document).ready(function() {
$(selector).sheet({
urlGet: "documentation.html table:first",
urlSave: "save.html",
title: '',
editable: true,
urlBaseCss: 'jquery.sheet.base.css',
urlTheme: "theme/jquery-ui-themeroller.css",
urlMenu: "menu.html",
urlMenuJs: "plugins/jquery.clickmenu.pack.js",
urlMenuCss: "plugins/clickmenu.css",
urlScrollTo: "plugins/jquery.scrollTo-1.4.0-min.js",
loading: 'Loading Spreadsheet...',
newColumnWidth: '120px',
ajaxSaveType: 'POST',
buildSheet: false,//'10x30', this can be slow
calcOff: false,
log: false,
lockFormulas: false,
parent: this,
colMargin: "25px",
fnBefore: function() {},
fnAfter: function() {},
fnSave: function() { jS.saveSheet(); },
fnOpen: function() {},
fnClose: function() {}
});
});

jQuery.sheet Dependencies | Plugin File Name | Size (kb) | Compressed
jQuery | jquery-1.2.6.pack.js | 30.3 | yes
jQuery.clickMenu (optional) | jquery.clickmenu.js | 4.24 | yes
jQuery.clickMenu Style (optional) | jquery.clickmenu.css | 1.95 | no
jQuery.sheet | jquery.sheet.min.js | 40.5 | yes
jQuery.scrollTo (optional) | jquery.scrollTo-1.4.0-min.js | 1.95 | yes
jQuery UI - ThemeRoller style | Make your theme using jQuery UI Themeroller. This is a pack of files. Default directory for unzip is jQuery.sheet_root/theme. | 123 | yes
| Total App Size: | 30KB | <--Note:this field is dynamic :)
The below area is mainly for those that would like to really build around the sheet. I tried to be as detailed as possible. I will try to keep this as updates as possible. |  |  |
jQuery.sheet Object/Function | Description |  |
jQuery.sheet / jS | Object that holds all the functions used for jQuery.sheet (A jQuery extension, different from jQuery.sheet(), a jQuery.fn extension). |  |
jQuery.calculationsEngine / cE | Object that holds the functions used to calculate the table as a spreadsheet. |  |
EMPTY_VALUE | Empty object - {} |  |
cellIsEdit | Is true when cell is being edited. |  |
cl | Class list shorthand |  |
getResizeControl | returns the resize function needed for a Id bar resizer. |  |
id | Id list shorthand |  |
obj | Object list shorthand |  |
s | jQuery.sheet.settings shorthand |  |
themeRoller | Themeroller object. Used for styling. |  |
toggleHide | Not yet used, too buggy. Used for hiding and showing sheets. |  |
version | Returns jQuery.sheet's current verison. |  |
ERROR | The value returned when a cell fails a function. |  |
HTMLtoCompactSource | Parses the sheet's HTML to compact source. |  |
HTMLtoPrettySource | Parses the sheet's HTML to pretty source. |  |
addColumn | Adds a single column. |  |
addColumnMulti | Calls jQuery.sheet.addColumn a specified number of times. |  |
addRow | Adds a single row. |  |
addRowMulti | Calls jQuery.sheet.addRow a specified number of times. |  |
barAdjustor | Runs in memory to re-adjust the position of the cell Id bars. |  |
barHeightSync | Used in Safari/Chrome only to re-sync the rows of a spreadsheet to the size of the Id bars. |  |
barResizer | Object that holds the functions for bar resizing. |  |
buildSheet | Builds a table used for a spreadsheet. |  |
calc | Function for compiling against the jQuery.calculationsEngine. |  |
cellClick | Step 1 of the cell click function |  |
cellEdit | Causes a click event to occur on any given cell. Usually used for arrow keys to set focus on cells. |  |
cellEditAbandon | Takes the focus away from cells, escapes the edit process. |  |
cellEditDone | Occurs when another cell is click to end the current cell edit session. |  |
cellFindXY | Returns the absolute position of a cell. Mainly used to find position of element on page during row/column resize. |  |
cellOnClick | Step 1 of the cell click function. Also detects if the formula's are locked for edit. |  |
cellOnClickManage | Step 2 of the cell click function. On first click, sets the cell to editable. On second click it grabs the html in the cell or formula and throws it into a textarea and the textarea within the cell. |  |
cellOnMouseDown | Makes multi selectable cells possible. When occurs, sets cellSetActiveMulti to run through it's mousemove and mouseup on document. |  |
cellSetActive | Sets the cell Id bars and cell visually active. |  |
cellSetActiveMulti | Works in accord with cellOnMouseDown. |  |
cellSetActiveMultiColumn | From a column's double click event, it selects all cells within that column. |  |
cellSetActiveMultiRow | From a row's double click event, it selects all cells within that row. |  |
cellSetFocus | Changes the cell FX element to reflect the current cell. Focuses on the formula when done. |  |
cellStyleToggle | Manages styles interactions. |  |
cellTextArea | Manages leaving, and entering a textarea. Returning the most current value. Also makes the formula disabled if textarea is active. |  |
deleteColumn | Deletes a column. |  |
deleteRow | Deletes a row. |  |
followMe | Used with jQuery.scrollTo plugin. Makes the pane follow the currently selected cell. |  |
formulaKeyDown | The centralized location for most keydown events. Takes advantage of select rather than if statements to make it almost seam like nothing is capturing these event. |  |
getCss | Simple plugin that writes a css link for those that are needed. Interacts with any url setting of jQuery.sheet. |  |
getIndexTd | Centralized location for grabbing the cell's current "cellIndex". Mostly used with jQuery.calculationsEngine. |  |
getIndexTr | Centralized location for grabbing the cell parent's current "rowIndex". Mostly used with jQuery.calculationsEngine. |  |
getTd | Returns the currently selected cell from a tableBody var that's sent to it. Returns a cell very quickly. |  |
getTdLocation | Returns an array of 2 numbers - [row, column]. |  |
importColumn | Creates a new column, then sets their html to a value that's sent in the form of an array. |  |
importRow | Creates a new row, then sets their html to a value that's sent in the form of an array. |  |
log | Used for debugging. Needs to have some timing values in the futures. |  |
makeBarItemLeft | Creates the functional Id bar to the left of the spreadsheet. |  |
makeBarItemTop | Creates the functional Id bar to the top of the spreadsheet. |  |
makeControls | If a cell is editable, it create the formula textarea, FX, Menu, sheetTitle. |  |
manageHtmlToText | Converts different characters for use with formula textarea/in cell edit textarea. |  |
manageTextToHtml | Converts from different values from the formula textarea/in cell edit textarea to HTML. |  |
newSheet | A friendly way of letting the user create a spreadsheet. Uses a prompt for user input. |  |
openSheet | Opens either from a url or a var a new spreadsheet. |  |
refreshLabelsColumns | Resets all column labels. Used when adding new columns, deleting columns. |  |
refreshLabelsRows | Resets all row labels. Used when adding new rows, deleting rows. |  |
saveSheet | Standard function used for saving sheets. Called from jQuery.sheet.settings.fnSave(). If you have a different way that you'd like to save sheets, use the fnSave setting. |  |
sheetClearActive | Used to clear the themeRoller classes from the cell Id bars and to set the formula textare to ''. |  |
sheetDecorate | Set's the sheet up with top and left cell id bars as well as syncronizing sheet size in accord with that of it's parent. |  |
sheetDecorateRemove | Returns a sheet back to normal html. |  |
sheetInit | Very short function that put's the created instance of the spreadsheet into it's parent, styling, and bar adjuster. |  |
sheetSyncSize | It was difficult to get main web browsers (IE, FF, Safari/Chrome) to output the spreadsheet where it needed to be, and the sizing it needed to be so it looked right. This function manages sizing. |  |
sheetTitle | Gets/Sets the sheet's title if it's enabled. |  |
tableCell | A prototype object for interacting with jQuery.calculationsEngine. |  |
tableCellProvider | A prototype object for interacting with jQuery.calculationsEngine. |  |
viewSource | A nice way of viewing source. Can be compact or pretty. |  |

If you are not a programmer, just using jQuery.sheet for it's spreadsheet purposes, just ignore the "Dependency" column. |  |
Navigation | Result | Dependancy
Left Arrow | Active cell moves left if possible. | jQuery.sheet.cellClick()
Right Arrow | Active cell moves right if possible. | jQuery.sheet.cellClick()
Up Arrow | Active cell moves up if possible. | jQuery.sheet.cellClick()
Down Arrow | Active cell moves down if possible. | jQuery.sheet.cellClick()
Escape | Active cell is removed from focus. | jQuery.sheet.cellEditAbandon()
Enter | Starts in-place edit / Active cell moves down if possible. | jQuery.sheet.formulaKeyDown() private function enter()
Ctrl + Enter | Ends in-place edit / Active cell moves down if possible. |
Tab | Active cell moves right if possible. | jQuery.sheet.cellClick()
Feature | Info | Dependancy
jQuery.sheet is Re-sizable! | Click and drag on the cell Id bars, and it will resize the row. | jQuery.sheet.barResizer()
Auto Scroll | When you navigate to a cell the spreadsheet pane automatically scrolls to it. | jQuery.scrollTo plugin
Multi cell select | If you drag your mouse over a range of cells, it will select them for you. You can use this to change their style. | jQuery.sheet.cellSetActiveMulti()
Multi cell select from cell Id bars | Double click on the mouse Id bars and it will select the range of cells associated with it. | jQuery.sheet.cellSetActiveMultiColumn() or jQuery.sheet.cellSetActiveMultiRow()
Add Row | Adds a row to the bottom of your spreadsheet. | jQuery.sheet.addRow()
Insert Row | Inserts a row just below the currently selected row. | jQuery.sheet.addRow()
Add Multi Row | Adds multiple rows to the end of the spreadsheet. | jQuery.sheet.addRowMulti()
Delete Row | Deletes the currently selected row. | jQuery.sheet.deleteRow()
Add Column | Adds a column to the last column of the spreadsheet. | jQuery.sheet.addColumn()
Insert Column | Insert column just after the currently selected column. | jQuery.sheet.addColumn()
Add Multi Column | Adds multiple columns to the last column in the spreadsheet. | jQuery.sheet.addColumnMulti()
Delete Column | Delete the currently selected spreadsheet. | jQuery.sheet.deleteColumn()
Style cells | Cells are styleable. | jQuery.sheet.cellStyleToggle()
Support of jQuery UI theme | You make the spreadsheet look like you want. Pick your theme here: http://ui.jquery.com/themeroller | jQuery UI Theme / jQuery.sheet.themeRoller
Sheet Title | You can change the sheet's title. | jQuery.sheet.sheetTitle()

jQuery.sheet | A jQuery Spreadsheet with Calculations | jQuery.sheet on jQuery's Website
Version | 0.4 |
Written By | Robert Plummer | My jQuery Project Website
Written Using | Notepad++ |
Compressed Using | YUI Compressor |
Compatibility | Firefox 3, IE 7, Chrome, Safari |
About Me | Professional Services |
Bugs? | Bugs Page |
Want to see a feature added? | Features Page |
Need support? | Support Page |