The Spreadsheet feature can be be accessed through the jquery.sheet interface, added to Tiki since version 5.0
When adding a new spreadsheet, the interface is as usual in Tiki5: you have the option to allow wiki parsing of wiki content inside the spreadsheet, plus defining some parent relationship with other spreadsheets:
When editing the spreadsheet, you can add more rows and columns, add content to them, move among the cells using the cursor keys, etc. If wiki parsing was enabled for the spreadsheet, then you can add any wiki syntax to the cell (including Wiki plugins!)
That wiki markup will be parsed when saved.
New sheets can be added when clickling at the plus sign ("+") at the bottom of the spreadsheet.
Then, this new sheet is added to the workbook.
{sheet(id=2)}
| Function | Arguments | Example | Result | Additional Information | Sample # | Sample Text |
| ABS | numbers_as_array | "=ABS(F4)" | 62 | 23 | Hello World | |
| AVERAGE | values_as_array | "=AVERAGE(F4:F14)" | 46.92307692307692 | Synonym:?AVG | 45 | True |
| CEILING | numbers_as_array | "=CEILING(F4:F14)" | 6,21E+016 | 62 | False | |
| COUNT | html_as_string | "=COUNT(F2:F14)" | 13 | 108 | To High | |
| DAYSFROM | ur |
"=DAYSFROM(2009,4,15)" | -11 | 200 | To Low | |
| DOLLAR | numbers_as_array | "=DOLLAR(F13)" | $55.00 | 36 | Perfect | |
| FALSE | "=IF(F4 < 100, TRUE(), FALSE())" | TRUE | 17 | number | ||
| FIXED | number, decimals, noCommas? | "=FIXED(F4+F14)" | 41.00 | Two decimal places | 99 | numbers_as_array |
| FLOOR | numbers_as_array | "=FLOOR(F4-F5)" | -46 | Synonym: INT | 100 | values_as_array |
| HYPERLINK | "=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())" | TRUE | Can have nested IF functions. | -14 | ur |
| IMG | "=IMG("http://ui.jquery.com/images/logo.gif")" | The url can be sensitive to numbers. Also, on initial load, because the image doesn't really have a size, the outerheight can be distorted. An easy way to offset this is to have some text in front of it that's taller than the image :). | 55 | values | ||
| MAX | values_as_array | "=MAX(F3:F13)" | 200 | -21 | ||
| MIN | values_as_array | "=MIN(F3:F13)" | -100 | |||
| N | numbers_as_array | "=N(F3)" | 45 | |||
| PI | "=PI()" | 3.141592653589793 | If you use "=PI" it will return the actual function as text, which is incorrect. Use "=PI()". | |||
| TODAY | "=TODAY()" | Wed Sep 15 2010 14:32:35 GMT-0400 (Eastern Daylight Time) | ||||
| TRUE | "=TRUE() || FALSE()" | TRUE | ||||
| SUM | values_as_array | "=SUM(F2:F13)" | 631 | |||
| ROUND | numbers_as_array | "=ROUND(1.6)" | 2 | |||
| RAND | "=RAND()" | 0.2405688383833392 | Synonym: RND |
| Cell Navigation | Result | Dependancy | Synonym |
| Left Arrow | Active cell moves left if possible. | jQuery.sheet.evt.cellClick() | jS.evt.cellClick() |
| Right Arrow | Active cell moves right if possible. | jQuery.sheet.evt.cellClick() | jS.evt.cellClick() |
| Up Arrow | Active cell moves up if possible. | jQuery.sheet.evt.cellClick() | jS.evt.cellClick() |
| Down Arrow | Active cell moves down if possible. | jQuery.sheet.evt.cellClick() | jS.evt.cellClick() |
| Escape | Active cell is removed from focus. | jQuery.sheet.evt.cellEditAbandon() | jS.evt.cellEditAbandon() |
| Enter | Starts in-place edit / Active cell moves down if possible. | jQuery.sheet.evt.formulaKeyDown() | jS.evt.formulaKeyDown() |
| Ctrl + Enter | Ends in-place edit / Active cell moves down if possible. | jQuery.sheet.evt.formulaKeyDown() | jS.evt.formulaKeyDown() |
| Tab | Active cell moves right if possible. | jQuery.sheet.evt.cellClick() | jS.evt.cellClick() |
| Chart Type | Example | Chart | Data | Month | Year |
| Vertical Bar | "=BARCHART(D2:D13) | 4 | Jan | 2001 | |
| Horizontal Bar | "=HBARCHART(D2:D13) | 6 | Feb | 2002 | |
| Pie | "=LINECHART(D2:D8, F2:F6)" | 7.2 | Mar | 2003 | |
| Line | "=PIECHART(D2:D8, E2:E8)" | 7.5 | Apr | 2004 | |
| 8.2 | May | 2005 | |||
| 9.1 | Jun | 2006 | |||
| 14.1 | Jul | 2007 | |||
| 16 | Aug | 2008 | |||
| 17.9 | Sep | 2009 | |||
| 22 | Oct | 2010 | |||
| 30 | Nov | 2011 | |||
| 32 | Dec | 2012 |
| Inputs are for capturing fixed data, such as a drop down list (INPUT.SELECT), or a checkbox (INPUT.CHECKBOX) | |||||||
| Input Type | Example | Data Number | Data String | ||||
| Select List | "=INPUT.SELECT(D3:D10)" | 34 | Lorem | ||||
| Radio List | "=INPUT.RADIO(E3:E10)" | Lorem Proin Aliquam Quisque Aliquam Vivamus Etiam Donec | -20 | Proin | |||
| Checkbox | "=INPUT.CHECKBOX(E3)" | Lorem | 123 | Aliquam | |||
| Get Select List Value | "=INPUT.SELECTVAL(C3)" | 4 | 123 | Quisque | |||
| Get Radio List Value | "=INPUT.RADIOVAL(C4)" | Donec | 4 | Aliquam | |||
| Get Checkbox Value | "=INPUT.CHECKBOXVAL(C5)" | Lorem | 534456 | Vivamus | |||
| Detect if Checkbox is Checked | "=INPUT.ISCHECKED(C5)" | FALSE | 3 | Etiam | |||
| 1 | Donec |
| Function | Arguments | Example | Results | Additional Information | Sample # | Sample Text |
| FACTORIAL | number | '=FACTORIAL(5)' | 120 | |||
| COMBINATION | number, number | '=COMBINATION(7,5) | 21 | |||
| PERMUTATION | number, number | '=PERMUTATION(7,5) | 2520 | |||
| GAMMA | number | |||||
| PRECISION | num, precision | |||||
| MINIMUM | array | |||||
| MODE | array | |||||
| MAXIMUM | array | |||||
| MEAN | array | |||||
| SUM | array | |||||
| MEDIAN | array | |||||
| QUARTILES | array | |||||
| VARIANCE | array | |||||
| MEANDEV | array | |||||
| STDEV | array | |||||
| COVARIANCE | array, array | |||||
| CORR_COEFF | array, array | |||||
| UNIFORMCDF | number, number, number | |||||
| BINOMIAL | number, number, number | |||||
| BIONOMIALCDF | num, num, num | |||||
| NEGBIN | num, num, num | |||||
| NEGBINCDF | N, m, n, x | |||||
| HYPGEOM | N, m, n, x | |||||
| HYPGEOMCDF | N, m, n, x | |||||
| EXPONENTIALCDF | l, x | |||||
| POISSON | l, x | |||||
| POISSONCDF | l, x | |||||
| NORMCDF | u, s, t | |||||
| LINEAR_REQ_EQ | array, array | |||||
| EXP_REG_EQ | array, array | |||||
| SECANTMETHOD | func, min, max, error, maxiter | |||||
| FIVEPT | func, x, h | |||||
| FCRIT | f, a b | |||||
| ASR | f, a b, precision |
And
{sheet(id=2 simple=y width="100%" height="100%" subsheets=n)}
| Function | Arguments | Example | Result | Additional Information | Sample # | Sample Text |
| ABS | numbers_as_array | "=ABS(F4)" | 62 | 23 | Hello World | |
| AVERAGE | values_as_array | "=AVERAGE(F4:F14)" | 46.92307692307692 | Synonym:?AVG | 45 | True |
| CEILING | numbers_as_array | "=CEILING(F4:F14)" | 6,21E+016 | 62 | False | |
| COUNT | html_as_string | "=COUNT(F2:F14)" | 13 | 108 | To High | |
| DAYSFROM | ur |
"=DAYSFROM(2009,4,15)" | -11 | 200 | To Low | |
| DOLLAR | numbers_as_array | "=DOLLAR(F13)" | $55.00 | 36 | Perfect | |
| FALSE | "=IF(F4 < 100, TRUE(), FALSE())" | TRUE | 17 | number | ||
| FIXED | number, decimals, noCommas? | "=FIXED(F4+F14)" | 41.00 | Two decimal places | 99 | numbers_as_array |
| FLOOR | numbers_as_array | "=FLOOR(F4-F5)" | -46 | Synonym: INT | 100 | values_as_array |
| HYPERLINK | "=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())" | TRUE | Can have nested IF functions. | -14 | ur |
| IMG | "=IMG("http://ui.jquery.com/images/logo.gif")" | The url can be sensitive to numbers. Also, on initial load, because the image doesn't really have a size, the outerheight can be distorted. An easy way to offset this is to have some text in front of it that's taller than the image :). | 55 | values | ||
| MAX | values_as_array | "=MAX(F3:F13)" | 200 | -21 | ||
| MIN | values_as_array | "=MIN(F3:F13)" | -100 | |||
| N | numbers_as_array | "=N(F3)" | 45 | |||
| PI | "=PI()" | 3.141592653589793 | If you use "=PI" it will return the actual function as text, which is incorrect. Use "=PI()". | |||
| TODAY | "=TODAY()" | Wed Sep 15 2010 14:32:35 GMT-0400 (Eastern Daylight Time) | ||||
| TRUE | "=TRUE() || FALSE()" | TRUE | ||||
| SUM | values_as_array | "=SUM(F2:F13)" | 631 | |||
| ROUND | numbers_as_array | "=ROUND(1.6)" | 2 | |||
| RAND | "=RAND()" | 0.2405688383833392 | Synonym: RND |
References:
A lot of work has happened from Tiki5 to Tiki6,
FACTORIAL: jQuery.factorial,
COMBINATION: jQuery.combination,
PERMUTATION: jQuery.permutation,
GAMMA: jQuery.gamma,
PRECISION: jQuery.precision,
MINIMUM: jQuery.minimum,
MAXIMUM: jQuery.maximum,
MEAN: jQuery.mean,
SUM: jQuery.sum,
MODE: jQuery.mode,
MEDIAN: jQuery.median,
QUARTILES: jQuery.quartiles,
VARIANCE: jQuery.variance,
MEANDEV: jQuery.meandev,
STDEV: jQuery.stdev,
COVARIANCE: jQuery.covariance,
CORR_COEFF: jQuery.corr_coeff,
UNIFORM: jQuery.uniform,
BINOMIAL: jQuery.binomial,
BINOMIALCDF: jQuery.binomialcdf,
NEGBIN: jQuery.negbin,
NEGBINCDF: jQuery.negbincdf,
HYPGEOM: jQuery.hypgeom,
HYPGEOMCDF: jQuery.hypgeomcdf,
EXPONENTIALCDF: jQuery.exponentialcdf,
POISSON: jQuery.poisson,
POISSONCDF: jQuery.poissoncdf,
NORMCDF: jQuery.normcdf,
LINEAR_REG_EQ: jQuery.linear_reg_eq,
SECANTMETHOD: jQuery.secantmethod,
FIVEPT: jQuery.fivept,
FCRIT: jQuery.fcrit,
ASR: jQuery.asr
Since Tiki6 spreadsheets versions can be compared showing easily differences between any pair of versions: pink background for deleted content, green background when new content has been added, and prepending a "+" sign for the new text added, and a negative "-" sign for text deleted.
Example:
Sheet in edit mode, showing the new toolbar specific from the spreadsheet feature:
When you click in the "History" button below each spreadsheet when it is in view mode, you are shown a table to choose which versions you want to compare:
Then, after you select any pair, you can click on "compare", and you can see the differences between those two versions of the same spreadsheet:
Note that scrollbars will be locked together to ease navigation on them both synchronized on the same columns at the sme time with a single scrollbar movement.
You can use some formulas like in OOo Calc or MS Excel, using slightly different syntax (because the JQ Spreadsheet is using Javascript for the formulas):
=IF(E10=="Y",695,IF(E10=="N",495,"ERROR"))
or like this
=IF(SHEET1:E10=="N",0.08,IF(SHEET1:E10="Y",0.25,"ERROR"))
Aliases: