Excel
The clipboard interchange format between spreadsheet apps is tab-separated values. Copy a range in Excel and TSV is what's on your clipboard — one paste away from being a .tsvt.
Out of Excel, into a sheet
Select a range in Excel, copy it, and paste the clipboard into a file — the grid arrives tab-separated, already a valid .tsvt:
pbpaste > budget.tsvt # macOS; Linux: xclip -o -selection clipboard / wl-paste tsv check budget.tsvt
On Windows, powershell Get-Clipboard > budget.tsvt does the same.
What travels is the computed values — spreadsheet clipboards carry results, not formulas. Re-express the ones you want to keep as =formulas in A1 notation, and from then on the sheet computes, diffs, and versions as text.
Out of a sheet, into Excel
The reverse paste works because Excel parses clipboard TSV back into cells. Render a sheet onto the clipboard and paste into any worksheet — it lands as a proper grid, one value per cell:
tsv render grades.tsvt | pbcopy # then ⌘V in Excel
Through files
For file-based workflows, render speaks CSV directly and Excel opens it double-click clean:
$ tsv render --format csv grades.tsvt
Student,Math,Reading,Science,Average,Result
Alice,85,90,78,84.3,PassGoing the other way, save any worksheet as Text (Tab delimited) and the result is a formula-free .tsvt, ready for tsv tui or the playground.
When you retype a formula
Values move between the two without surprises; formulas mostly do too, since the operators are Excel’s. Six readings differ deliberately, and each one is reported by tsv check on the cell rather than left for you to find in a total:
| You write | Excel | tsvsheet |
|---|---|---|
=-2^2 | 4 | -4 — the sign applies to the whole power |
=2^3^2 | 64 | 512 — ^ groups to the right |
="3"+1 | 4 | #VALUE! — text is not coerced into arithmetic |
="1"=1 | FALSE | #VALUE! — nor into a comparison |
="a"="A" | TRUE | FALSE — text compares by case |
=TRUE=1 | FALSE | TRUE — a boolean is 1 or 0, not a value above every number |
Parentheses say which grouping you meant and silence the first two; value() converts text to a number, and lower() on both sides asks Excel’s case-blind question. A cell holding 3 is already a number, so the coercion rules only come up when text is quoted deliberately.