Give it a list of objects, an export, a log, a response you copied out of a console, and the columns become the union of every key, in the order the keys first appear, so a record missing a field leaves a blank rather than shifting the row along. Numbers become real numbers in the sheet. There is no formatting: no bold header row, no column widths.
The spreadsheet writer is a few kilobytes of our own code. No million-byte library is downloaded. Your file is read on your own machine and never sent anywhere. Open your browser’s network tab and watch while you use it.
A list of objects. One object on its own works too and becomes a single row. A list of lists is accepted, but it carries no key names, so the columns come out headed 0, 1, 2. A bare string or number is refused with a message, but a list of plain strings or numbers is not refused, and what comes out is wrong: each string is split one character per column, and a list of numbers gives an empty workbook.
They are written into the cell as JSON text rather than spread across extra columns. Nothing inside them is dropped, but nothing is flattened for you either. There are no parent.child columns.
No. They arrive as the words true and false in text cells, not as Excel booleans. Numbers are the exception and become real numbers, though the JSON is read as JSON first: 1250.00 arrives as 1250, and a number longer than about 15 digits comes out rounded.
All but one whose values are every one of them empty or null: that row is dropped on the way into the sheet, while the count in the summary line still includes it. If the two disagree, that is why.
Everything here is free and works the same way, in your browser.
A new DeskKit tool lands every week or two. Leave an address to hear about it. Nothing else is ever sent, and one click removes you.