Spreadshit is a simple spreadsheet calculator, like Microsoft Excel, OpenOffice Calc, LibreOffice Calc, or Google Sheets. Unlike these,
it runs in your browser. No additional software is needed.
it runs also when you're offline
it is based on HTML, an open and human-readable file format
it can export to TSV and Latex
How it works
For technical reasons, Spreadshit works only in Firefox and Chrome so far. Also, for security reasons, the browser cannot save your modified Spreadshit to disk. You have to use the SAVE button inside the Spreadshit. Using the browser function File->Save will not save your modifications! Again for security reasons, the SAVE button has to go through a rather lengthy user dialog before saving to disk.
Go to the upper left cell of the range that you want to copy. Press SHIFT, and use the cursor keys to go to the lower right cell of the range that you want to copy. Press CTRL+C (on Mac: Command+C). If you want to copy the cell values, make sure that the cursor is at the very beginning of the lower right cell. If you want to copy the cell formulas, move the cursor into the formula of lower right cell.
Import data from another spreadsheet
Open the other spreadsheet in Excel or LibreOffice. Select the range that you would like to copy. Press CTRL+C (on Mac: Command+C). Go to the Spreadshit. Go to the cell where you would like to paste. Press CTRL+V (on Mac: Command+V).
Save as PDF
Use the printing function of your browser. On a Mac, press Command+P, and click the little PDF button at the bottom left in the dialog window.
Fill a cell
Go to some cell and press ALT+DOWN. This copies the content of the cell to the cell below.
In Spreadshits, every column has a name, and every row has a name. You can change these names to your liking, by just clicking into the respective cell. Names can contain any characters except operators (such as -, *, /, etc.) and brackets.
You can refer to a cell by any of the following:
The cell given by that particular column name and row name, e.g., Lisa.Q1.
Equivalent to ColumnName.RowName.
The cell at the given column and the current row (!). If we use, e.g., Q1 in the 4th row, the value is the value in the 4th row of the column Q1.
The cell at the given row and the current column. If we use, e.g., Mary in the 4th column, the value is the value in the 4th column of the row Mary.
The vertical range (vector) from ColumnName.RowName1 to ColumName.RowName2. If ColumnName is omitted, the expression refers to the current column.
The horizontal range (vector) from RowName.ColumnName1 to RowName.ColumnName2. If RowName is omitted, the expression refers to the row column. This is used in the screenshot above in the gray cell.
The entire horizontal row (vector) given by the row name — except the first column. If used in the same row, the expression refers only to the cells to the left of the current cell.
The entire vertical row (vector) given by the column name — except the first row. If used in the same column, the expression refers only to the cells above the current cell.
To refer to the data in another table, prefix the above by “TableName#”.
A cell can contain either a string or a mathematical expression. The latter have to start with a “=”. They can contain
cell references (e.g., Lisa.Q1; see above)
function calls (e.g., SUM(Lisa.Q1:Q4); see below)
simple values (e.g., 42)
strings with quotes (e.g., "42")
the mathematical operators +, -, /, *
the comparison operators =, !=, <=, >=, <, >
Spreadshit supports the following functions so far:
computes the sum
computes the product
computes the dot product of the two vectors
computes the average
computes the number of cells in the vector that are not empty.
computes the maximum
computes the minimum
rounds the value to the given number of digits
computes the logical AND
computes the logical OR
returns zero if the value evaluates to 0, and 1 else
IF(condition, value1, value2)
returns value2 if condition evaluates to zero, and value1 otherwise.
LOOKUP(value, vector, vector)
finds the value in the first vector, returns the value in the second vector at the same index position.
computes a new vector from the given vector, in which every element is replaced by the expression. In the expression, “#” refers to the element in the original vector. For example, MAP(Q1:Q4, #*2) will return a new vector from Q1:Q4 in which every element is multiplied by two.
The MAP function serves to simulate the Excel functions COUNTIF, SUMIF, etc. For example:
Count the number of cells with that have a value between 40 and 50: COUNT(MAP(Q1:Q4, IF(AND(#>40,#<50),1,""))).
Average all positive numbers: AVERAGE(MAP(Q1:Q4, IF(#>0,#,""))).
Sum all numbers, giving double weight to numbers above 100: SUM(MAP(Q1:Q4, IF(#>100,#*2,#))).
Terms and Conditions
Spreadshit was programmed by Fabian M. Suchanek. It is available under a Creative Commons Attribution-Noncommercial License. This means you can use the program for free. You can even build on it, if you do so for non-commercial puproses, and if you credit the author. Finally, the license REJECTS ALL WARRANTIES AND GUARANTEES WHATSOEVER FOR THIS PRODUCT. This is not a professional program, but a personal tool. It may be useful to you — or not. The current version is 2017-02-12.