The Tiki spreadsheet feature was added to Tiki in 2004 (version 1.9) using Tiki specific PHP and JavaScript code. Starting in Tiki5, the Tiki spreadsheet front-end was upgraded to use jquery.sheet for a much nicer interface, and more features. It worked well for years, and eventually, jQuery.sheet was renamed to WickedGrid. However, WickedGrid has been inactive for years so we need to switch to one of the many impressive modern alternatives. If you would like to help with this, we are looking for financial sponsors and/or volunteer developers. And later, testers. Please contact Marc Laporte.
This page should merge with Spreadsheet JQ
Spreadsheet
Tiki Spreadsheet performs calculations on user entered numeric data and presents the resulting data in tables and/or graphics within Tiki pages. The documentation describes the various available calculations performed by the Tikisheet.
Enable the feature
Overview
Sheet management
Graph | Create graphics and charts | |
History | View spreadsheet modification history | |
Export | Save the spreadsheet data in an other format | |
Import | Load data from an other data source | |
Edit | Modify the parameters of the spreadsheet | |
Delete | Deletes the spreadsheet |
Add one
Insert this code in a wiki page in order to have on spreadsheet added there:
Copy to clipboard
{sheet}
And follow the instructions/links that you will be provided in the page after saving it.
Usage - text
Cell Navigation
- Left Arrow - Active cell moves left if possible
- Right Arrow - Active cell moves right if possible
- Up Arrow - Active cell moves up if possible
- Down Arrow - Active cell moves down if possible
Cell Highlighting With Arrow Keys
- Left Arrow + Shift - Highlights left if possible
- Right Arrow + Shift - Highlights right if possible
- Up Arrow + Shift - Highlights up if possible
- Down Arrow + Shift - Highlights down if possible
Editing
- Escape - Active cell is removed from focus
- Enter - Active cell is set and cell moves down if possible.
- Shift + Enter - Adds a line break to the cell's value
- Tab - Active cell is set and active cell moves right if possible
- Ctrl + X - Cut
- Ctrl + C - Copy
- Ctrl + V - Paste
Undo & Redo
- Ctrl + Z - Undo
- Ctrl + Y - Redo
A formula is the reason why spreadsheets are so powerful. jQuery.sheet has a very powerful and secure formula engine that can be used in the following way:
- Starting a cell's value with '=' activates the formula engine on the active cell(s) you are editing, for example (results in 100):
Copy to clipboard=100- This would really be the same as setting the cell's value to '100'
- Now lets start really using formulas (results in 0.03):
Copy to clipboard=(100 + 200) /1000
jQuery.sheet v3 offers the option of creating and referencing variables (see jQuery.sheet setting formulaVariables)
- Example of using simple variable in formula:
Copy to clipboard=variable_name
Variables can also have attributes:
- Example of using variable with attributes in formula:
Copy to clipboard=variable_name.attribute - Example of using variable with math:
Copy to clipboard=100 * variable_name
Functions are where much of the work is done within spreadsheets. Here is how to use them:
- To use the SUM function, enter the following:
Copy to clipboard=SUM() - To use SUM with a single cell:
Copy to clipboard=SUM(A1) - To use SUM with a range of cells:
Copy to clipboard=SUM(A1:B2) - Nested functions:
Copy to clipboard=DOLLAR(SUM(A1:B2) + SUM(D1:E2))
Available Function (To be written)
Cells can be referenced in the following ways:
- Single cell - example:
Copy to clipboardA1 - Range of cells - example:
Copy to clipboardA1:B2 - Single cell fixed - example:
Copy to clipboard$A$1 - Range of cells fixed - example:
Copy to clipboard$A$1:$B$2 - Other spreadsheet single cell - Example:
Copy to clipboardSHEET2!A1 - Other spreadsheet range of cells - Example:
Copy to clipboardSHEET2!A1:B2
See:
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) |
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 |
Usage - Graphs
For the time being, see this external documentation page:
https://github.com/Spreadsheets/WickedGrid
See also:
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) | 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 |
From Here
- PluginSheet
- Spreadsheet Functionality
- Spreadsheet Interface
- Spreadsheet Graphics and Charts
- JQuery
- Spreadsheet jq