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 clipboard
    A1
  • Range of cells - example:
    Copy to clipboard
    A1: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 clipboard
    SHEET2!A1
  • Other spreadsheet range of cells - Example:
    Copy to clipboard
    SHEET2!A1:B2

Copy-Paste from a desktop spreadsheet


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 url_as_string "=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 url_as_string
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)
Created with Raphaël
Created with Raphaël
Created with Raphaël
Created with Raphaël
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


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 url_as_string "=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 url_as_string
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)
Created with Raphaël
Created with Raphaël
Created with Raphaël
Created with Raphaël
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

Alias