Tables (Parquet, CSV, JSON, Excel)

Opening and querying

.parquet files open as a table; .csv, .tsv and .json open as text, and the tree's context menu offers Open as table. Reading is paginated (on demand) via DuckDB, with sorting (click the header) and filtering pushed down to the engine. The Structure button shows columns, types, row count and, for Parquet, row-groups and compression. The view is read-only.

The free SQL bar at the top of the table accepts any DuckDB query — the view t stands for the opened file. From a folder's context menu in the tree, Open folder as table reads every file of the same format as a single table; from the table's menu you can export the current view (CSV/Parquet/JSON), and from the tree's menu, convert a tabular file to another format. Free-form SQL is also available in the query command of the command line and in the MCP.

Excel spreadsheets (.xlsx) open as a read-only table with the sheets as tabs below the grid, as in Excel — a lightweight reader, no Excel installation needed.

Excel spreadsheets

Faithful to the file. The sheet shows up with the file's own formatting: numbers, currency, percentages and dates follow the format set in Excel — a value stored as 3750.5 with a currency format shows as $3,750.50, and a percentage comes out as 15% instead of 0.15. The font (name, size, bold, italic, underline), text colour, fill colour, per-cell borders, alignment, text wrapping, indent, rotated text and column widths also come from the file. Numbers sit on the right and text on the left, as in Excel.

When the sheet carries its own colours, the grid is drawn on a white background: Excel's colours were picked for white paper and would be unreadable over the dark theme. A file with no formatting at all keeps following the LightNote theme. The sheet opens in the order it was written — clicking a header sorts it, like every other table.

Original layout and zoom. When the sheet uses merged cells, custom row heights or hides the gridlines, the tab opens in Original layout mode (button on the toolbar), which reproduces that geometry as in Excel. The mode governs only the geometry — colour, font, borders and number format apply in both — and while it is on, sorting and filtering are unavailable, because reordering would leave the merged band on the wrong row; turn the button off to sort again. A sheet with none of that opens in the normal mode. Zoom is the same as in every view and lives in the status bar (see Workspace and windows); Ctrl+mouse wheel works over the grid too. A sheet formatted as an Excel Table also shows up coloured: its style is built into Excel and does not travel in the file, so the header and the banded rows are reconstructed from the theme.

Analyzing just a part. A real spreadsheet usually has a title, blank rows, a totals row and notes around the data — and, added up, they give the wrong number. The Range selector on the toolbar picks what becomes the table: the whole sheet, each Excel Table in the file (without its totals row) and each defined name.

To cut one out by hand, select the cells and click Use selection (or Analyze the selection as a table on the right-click menu): with a single cell, the filled block around it is used, and selecting a few rows of a table keeps the column names. The filter, the chart, the pivot table and the data quality then see only the range, which comes back when the tab is reopened. The First row is header button decides whether the first row provides the column names — LightNote guesses, and the button has the final say. Row numbers are Excel's, and the tooltip of each header shows the column letter.

Tabs and status bar. The sheets sit in tabs below the grid, and the file opens on the tab that was active when it was saved; a sheet hidden in Excel shows with a dimmed name. Right-clicking the tabs lists them all, for when they do not fit in the width. When you select cells, the status bar shows the sum of the numbers — or how many cells are filled, when there is text among them.

Large sheets. A tab with more than about 4 MB of data is not loaded into memory: DuckDB reads it gradually, outside the window, which keeps responding, and the toolbar says Large sheet, no formatting. Tabs, range and header work the same, and the filter, chart, pivot table and quality see every row. What is lost is the file's appearance (currency, color, border, merging); a column that mixes numbers and text stays as text, with no value erased. To use the selection, mark the whole range, with no filter or sorting.

Copying, filtering and charting

Copy as. In the context menu of any LightNote table (Parquet/CSV/JSON, Excel, SQL results, Tasks, Bases), the Copy as item puts the selection on the clipboard already formatted. Formatted table (Teams, Outlook…) pastes as a real table, with borders and a header, into programs that understand rich text — Teams, Outlook, Word, Excel (where there is no rich text, it falls back to TSV automatically). The others paste as plain text: Markdown table (ready for a note), CSV (quoted per RFC 4180), TSV (tab-separated), HTML (the <table> markup), JSON, JSONL (one record per line), YAML, and the Code submenu, which generates a literal ready to paste into a source file: Python (list of dicts) or JavaScript / TypeScript (array of objects). In JSON, YAML and code, cells that are numbers come out unquoted — but the original text is preserved, so IDs like 007 stay text. Ctrl+C still copies as TSV, as before.

Every table behaves the same way: Ctrl+F focuses the quick filter ("contains in any column"), a counter shows how many rows are left, and there is Export to CSV — including in .xlsx spreadsheets, in Tasks and in Bases. The grid's context menu still offers Copy as.

Result chart. The table's side bar has a Chart button (bars, line or scatter): the aggregation runs in DuckDB (no raw rows are pulled), and an Add to today's note button saves the chart as an image. The profile of each column — empty, null, distribution and most common values — is in the Quality panel.

Several charts and a pivot table. To cross two fields and aggregate a third — and to keep more than one chart per table — see Analysis area.