Browsing one file

These pages describe Calamo Pro 0.1 for Windows, Linux and macOS (beta). Download it and try it free for 14 days.

Open a file: the profile marks the key column. Click price for its values, filter it with the expression >95, sort it and save the rows shown.

Choose open one file to browse it on the start screen, or File → Browse one file… (Ctrl+B). The file is read the same way as for a comparison, so leading zeros and long numbers stay exactly as written. Nothing changes in the file unless you edit it and save.

Every file opens in a tab of its own, next to the comparison, so several files can be open at once; each keeps its search, filters, sort and columns. Ctrl+Tab goes to the next tab and Ctrl+W closes one.

Two files open in tabs in the browse view
Two files open in tabs; each keeps its own search, filters and sort.

Column profile

The list on the left shows, for every column over the whole file, how much of it is filled, roughly how many different values it has, whether it holds numbers, dates or text, and the smallest and largest value. Codes with leading zeros count as text, and the list says leading zeros kept under a column that has them: Calamo keeps 00123 as written, where Excel would turn it into 123. A column filled in every row where no value repeats is marked key: a good column to match rows by when you compare the file with another. A column that is nearly a key says how many rows repeat a value. A column counts as dates when every value is a date written the same way, such as 2026-11-04, 4.11.2026 or 04/11/2026; its range is then the earliest and latest date, and it sorts by date. A date like 04/11/2026 is read day first, unless the computer is set to US English. The table is usable while the profile is still being computed.

Column profile with customer_id marked as key and leading zeros kept
The profile: customer_id is marked key, and its leading zeros are kept.

Values of a column

Click a column to see its most common values with how many rows have each, and how many different values there are. For numbers, a histogram and the mean, median, standard deviation, sum, smallest and largest follow. Everything counts only the rows the search and filter keep, and changes with them. Click a value to show only the rows that have it.

Values of the price column: histogram, statistics and the most common values
The price column: histogram, mean, median and the most common values.

When most values of the column are different, as in an ID column, the panel also says how many values repeat and in how many rows; Show them filters the table to those rows (the filter repeats a value). A value cut off by the column's width shows whole when the pointer rests on the cell.

Numbers of turns the list into a small pivot table: for each value of the column, the rows and the sum of the numbers in another column (the mean and range show on hover), largest first by rows or by sum. Copy table copies it to paste into Excel.

Rows and sum of price for each city
Numbers of price by city: rows and sum for each value.

Filter, search and sort

Click a column in the list to filter it: contains, is exactly, is not, is empty, is not empty, matches an expression or repeats a value. Filter more columns the same way: a row is shown only when it passes every filter. Each filter shows above the table, and ✕ removes it.

An expression filters the way you would describe it: >10, <=5 and 10..20 compare numbers, or dates in a column of dates (>2025-01-01). berlin|vienna keeps either, !test leaves out values that contain “test”, =berlin means exactly that value and = alone an empty cell. /^SK\d+$/ is a regular expression. Upper and lower case count as the same. Search all columns (Ctrl+F) works together with the filters, and column headers sort as in a comparison.

Browse view with two filters, city is Berlin and price over 50, sorted by price
Two filters at once, city is exactly Berlin and price matches >50, sorted by price, largest first.

Columns shown

Columns above the table hides and shows columns. Keep the first column in view holds the row number and the first column shown at the left while the table scrolls sideways, so each row stays recognisable in a wide file.

When the file changes

Calamo reads the file once. If it changes on disk while you browse it, Calamo says so when you come back to the window, and Read it again reloads it with the same search, filters and columns.

Saving the rows shown

Save rows (Ctrl+E, or File → Save rows shown…) writes the rows the search and filters keep, in the order shown, with the columns shown (hidden columns are left out). Without a search or filter it saves the whole file.

The Save rows menu: CSV, Excel workbook, JSON, XML, Parquet
Save rows: the 512 rows with price over 95, in the order shown.
  • CSV keeps the shape of the file: the header as written, the delimiter, the line endings, the encoding (UTF-8, Windows-1250 or Windows-1252) and the byte order mark if it had one. An Excel file is saved as UTF-8 with a byte order mark, so Excel reads it right.
  • Excel workbook writes every value as text, so codes like 00123 keep their zeros and nothing turns into a date. Past 1,048,576 rows, Excel's limit, the rows continue on the sheets Rows (2), Rows (3) and so on. A value longer than an Excel cell holds (32,767 characters) is cut to fit, and Calamo says how many were; CSV keeps them whole.
  • JSON writes an array with one object per row, every value a string.
  • Parquet writes every column as text, so codes keep their zeros; read it with DuckDB, Spark or pandas.
  • CSV in parts for Excel shows when more than 1,048,575 rows are kept: it splits them into files name part 1.csv, name part 2.csv …, each with the header, so every part opens in Excel.

Calamo will not save over the file you are browsing.

To compare the file with another one, click Compare with another file…: the file becomes A and Calamo asks for B.