Show HN: Tuisheet, a terminal spreadsheet compatible with OpenXML (xlsx) files (github.com)
Presenting tuisheet: A love letter to VisiCalc and Lotus 1-2-3.
The motive was to code a programme inspired by VisiCalc and Lotus 1-2-3 interface, running on terminal, but fully compatible with the current universal standard of OpenXML (xlsx files for spreadsheets). Coded in Go lang; apart from my being more familiar with this programming language, it helps making a single executable, low on resources. Also, I like Go's compiler ability to cross compile to many platforms and OSes (which I personally often meet through my daily job). By the way, tuisheet is much more thoroughly tested and used on Linux than on Windows (or Solaris, AIX, BSD).
4 comments
[ 0.48 ms ] story [ 13.9 ms ] threadCurious how extensive the formula support is. How many Excel functions do you currently support, and how do you handle more complex formulas and dependencies between cells or dynamic array formulas, etc.?
ABS Absolute value AND TRUE if all arguments are true AVERAGE Arithmetic mean of values AVERAGEIF Mean of cells matching a criteria COLUMN Column number of a reference COUNT Count of numeric values COUNTA Count of non-empty values COUNTIF Count of cells matching a criteria COUNTIFS Count matching multiple criteria pairs DATE Date serial from year, month, day DAY Day of month of a date serial DAYS Days between two dates EXACT Case-sensitive text comparison EXP e raised to a power FILTER Filter array rows/cols by include booleans with optional if_empty FIND Position of text within text HLOOKUP Horizontal lookup in first table row IF Value depending on a condition IFERROR Fallback when an expression errors IFNA Fallback on #N/A like IFERROR IFS First matching condition's value INDEX Value at row/column inside a range INDIRECT Reference from text (A1 or R1C1, with sheet) INT Round down to integer IPMT Interest portion of a loan payment ISBLANK TRUE if the cell is empty ISERROR TRUE if the expression fails ISNUMBER TRUE if the value is a number ISTEXT TRUE if the value is text LEFT First characters of text LEN Length of text in characters LET Bind names to values for a calculation LN Natural logarithm LOWER Text converted to lowercase MATCH Position of a value in a range MAX Largest numeric value MID Substring by start and length MOD Remainder with sign of divisor MONTH Month of a date serial NA The #N/A error value NOT Logical negation NOW Current date and time serial OFFSET Range offset by rows/cols with optional height/width OR TRUE if any argument is true PI The number pi PMT Loan payment for fixed rate/terms POWER Number raised to a power PPMT Principal portion of a loan payment PRODUCT Product of values RIGHT Last characters of text ROUN...