data lens: excel, log, csv viewer & editor for confluence
Atlassian Marketplaceavailable nowruns on Atlassian
Install from the Atlassian Marketplacefree for sites up to 10 users
Some records were never buried; they were left on a page, where the attachments gather. Take the lantern that reads on the page: the file comes up in small byte ranges, as the person viewing the page.
Data files pile up on Confluence pages: an export, an event log, a sample, a table of results. Reading one has meant downloading it and opening something else. Data Lens opens it on the page instead. Insert the macro and it lists the page's data file attachments; pick one and it renders as a paged table right there. The macro opens CSV and TSV, JSONL and NDJSON, Parquet and Excel workbooks, .log, .txt and .out files with the level of each line detected and counted in chips, and gzipped JSONL, NDJSON, CSV, TSV and logs, and it writes the open table to a CSV download. The first rows are on screen before the file has been read through, and anyone who cannot download an attachment cannot read it through the viewer either. Search covers the whole file and counts the hits. An Excel workbook opens on its first visible sheet with the headers detected and the date and number formats applied, every sheet listed in the Schema tab, and a Parquet file gets the same tab with types, codecs and per-column statistics.
- opens
- CSV and TSV, JSONL and NDJSON, Parquet with snappy, gzip, zstd or lz4 columns, and Excel .xlsx and .xlsm attachments; .log, .txt, .out and .log.gz attachments and gzipped JSONL, NDJSON, CSV and TSV as well
- runs on
- Confluence Cloud, on Atlassian, with no vendor servers
- store
- on the Atlassian Marketplace
- version
- 3.5.0, published 2026-11-06, approved 2026-09-28

what it does
- The macro: type /lens in the editor to insert it; it lists the page's data file attachments, and a click opens one as a table
- CSV and TSV: delimiter sniffing, header detection and quoted fields, numbers right aligned
- JSONL and NDJSON: records indexed in the background while the first rows render, columns sampled from the data
- Parquet: row groups loaded on demand, and a Schema tab with column types, codecs, encodings and min and max per column
- Excel: the first visible sheet with headers detected and date and number formats applied, every sheet listed in the schema view with row counts, cached formula results shown without evaluation
- Search: scans the whole file and reports a hit count; the arrows jump between matches and Aa toggles case
- Row detail: any row opens as JSON, with a copy button
- Pinned file: pick an attachment in the macro configuration and the page opens straight into it for every reader
- Logs and plain text: a .log, .txt or .out attachment opens as a table of lines, each line with a level chip; plain, JSONL, logfmt and ANSI logs are recognized
- Gzip: gzipped JSONL, NDJSON, CSV, TSV and logs open in place, inflated as a stream up to 384 MB unpacked
- Export CSV: the open file written to a download, every row, with a progress line and Cancel in the status bar
- A second page: the macro configuration can name another page by id or exact title, and its data files list beside this page's, marked with the page
- Editing: double-click a CSV or TSV cell and type; the change waits in a list until you confirm it, and the file is saved as a new version, with every earlier version kept and reopenable
- JSON: an array of objects opens as a table, any other document in the detail pane
the file stays in confluence
No download and no vendor servers: the macro reads the attachment with your own access, straight from Atlassian in your browser. When you edit a cell, Confluence saves the file as a new version with a comment naming the change; the earlier versions stay in the history, and nothing is deleted.
what it asks for
- read:page:confluence, to list the data file attachments of the one page the macro sits on
- read:attachment:confluence, to fetch byte ranges of the file you open, as you
- One write scope, used only when you press Apply: writing attachments, to save your edits as a new version of the attachment, as you; the app never deletes an attachment or a version
- What it stores: its own settings inside the page the macro sits on; your browser keeps the theme, the ids of the attachments you open and the text of your searches (up to 200 of each, behind the counts in the trial notice), the notices it has shown, your answer to the one review prompt and the view you left each file on
- Permissions follow Confluence: a reader who cannot download an attachment cannot see it here either
- The list: shows the first 50 attachments of a page
ask rovo about an attachment
On a site with Rovo, the app's agent answers questions about a file on the page in Rovo Chat, with your permissions. The app is listed on the Marketplace AI and Rovo collection.
price, as the store shows it
Free up to 10 users. Past 10 users every user is billed: USD 3.35 per user per month for sites up to 100 users, less per user on larger sites. Billing runs through the Atlassian Marketplace, an annual plan costs ten times the monthly rate, and every paid plan starts with a 30-day free trial.

what's new
- 3.5.0published 2026-11-06
Under an Excel format with a language tag, such as [$-409], a date showed the tag in front of the value: [$-409]28-Oct-26 where 28-Oct-26 belongs. Some such tags came out mangled, as in [$-f40]2:30:00 PM for a time under [$-F400]. Dates and times under these tags now show without the tag.
A colour tag did it too. Under [Red]h:mm, 14:30 showed as [re31]14:30 and now reads 14:30. Two formats that count, [m] for minutes and [s] for seconds, showed [12] and [0] for 14:30 and now show 870 and 52200. Other tags in front of a date, [DBNum1] or [ENG] for example, no longer show either.
A date-only cell under some language tags took a time typed over its date without a word, and now refuses one.
Not fixed, among other things: a time with no date under a date format shows December 31, 1899, and a format with a condition such as [>100] shows the number unformatted. That goes for a date under [>100] too, which 3.4.0 showed with stray characters in front.
- 3.4.0published 2026-11-06
3.3.0 fixed Excel cells that already hold a date or a time. This one covers the empty ones. Type 2026-10-28 into an empty cell formatted as a date, or into a row you add under a column of dates, and it's saved as a date; in 3.3.0 both went in as text and nothing said so.
The sheet's own formatting decides what an empty cell is: the cell's format first, then its row's, then its column's. A new row that gets no format that way takes one from the last filled cell above it, when that cell holds a date or a time. Where the sheet says nothing, a typed date is still text, as before.
In an empty date cell, TBD goes in as text and the Apply confirmation names the cell first. 10/28/2026 is refused there at Apply: the message says how to type it, and nothing is written. So is 14:30 alone in an empty cell that shows a date and a time: it could have landed on a day in 1899. A bare number is refused in an empty date cell too, since 2026 could have read as 1905.
- 3.3.0published 2026-11-05
An Excel cell that holds a date or a time is still one after you edit it on the page, unless you type a word into it or clear it. In 3.2.0, 14:30 typed over an existing time was saved in the attachment as text, so Excel left it out of a sum; it's saved as a time now. A time cell also opens in the edit box as a time, 12:00:00 for noon, not on a day in 1899.
A word like TBD is still allowed in those cells. It goes in as text, and the Apply confirmation names each such cell before anything is written. An entry in one of those cells that looks like a date or a time in a form we don't read (10/28/2026, 2:30 pm) is refused at Apply: the message says how to type it, and nothing is written.
Apply also refuses a sheet with a row or cell tag we can't read safely, and saves nothing. In 3.2.0 such a sheet could be saved as XML that wasn't valid.
more
- reading data attachments in Confluence and Jira
- every format, every product
- the Jira edition
- security policy
- support
Pricing, invoices and licensing questions go to sales@twilightventures.dev; anything else about the product to support@twilightventures.dev.