Obsidian has no table editor in the spreadsheet sense. A table is Markdown text in your note, which is good for portability and a little awkward to type. Everything below works in a plain vault; the plugins are optional.
Basic table syntax
A table is a header row, a separator row of dashes, and data rows. Cells are separated by pipes (|):
| Project | Owner | Status || --- | --- | --- || Checkout rebuild | Ana | On track || Pricing page | Sam | At risk |
The pipes at the start and end of each line are optional, and the columns do not have to line up in the source. Obsidian renders the table in Live Preview and Reading view; in Source mode you see the text.
Alignment
Colons in the separator row set each column's alignment:
:---left (the default):---:centre---:right, which is what you want for numbers
| Channel | Spend | Leads || :--- | ---: | ---: || Search | $4,200 | 310 |
The usual problems, and fixes
A pipe inside a cell
Every unescaped | starts a new column. Write \| for a literal pipe. This catches people most often with wikilink aliases: [[Q4 plan|the plan]] breaks a row, while [[Q4 plan\|the plan]] works. Obsidian's link autocomplete does not always add the backslash inside a table, so check the source if a row suddenly has an extra column.
Line breaks in a cell
Each row must be a single line of text. For a break inside a cell, use the HTML tag <br>. Lists inside cells are not supported in Markdown tables; use short lines separated by breaks instead.
Formatting inside cells
Bold, italics, inline code, links, wikilinks and tags all work inside cells. Headings, block quotes and callouts do not.
Wide tables
With Readable line length on (Settings, Editor), notes are capped at a comfortable width, and a table with many columns gets cramped or scrolls sideways. Options: turn the setting off for wide-table notes, add a small CSS snippet that lets tables break out of the line width, or split one wide table into two narrower ones. The last is usually the most readable, especially on a phone.
Advanced Tables: easier typing
Advanced Tables, by Tony Grosinger, is one of the most installed Obsidian plugins (about 3.3 million downloads as of October 2026, from Obsidian's public plugin statistics, which we studied in what makes an Obsidian plugin win). It makes Markdown tables behave more like a spreadsheet while you type:
- Tab and Shift+Tab move to the next and previous cell; Enter moves to the next row, adding one at the end.
- The table's source is reformatted as you go, so the pipes line up and the text stays readable in Source mode.
- Commands to insert, delete and move rows and columns, set alignment and sort by a column, plus a sidebar with the same controls.
- Simple formulas on the line after the table, and export to CSV.
Two caveats from its own documentation: Tab and Enter navigation does not work on mobile (add its Next cell and Next row commands to the mobile toolbar instead), and some features are marked experimental, so keep backups or version history on.
Dataview tables: tables from your notes
If the rows of your table are notes (projects, people, books), you can generate the table instead of typing it. The Dataview plugin runs a query in a code block fenced with dataview:
TABLE owner, status, dueFROM "Projects"WHERE status != "done"SORT due ASC
Each matching note becomes a row; owner, status and due come from the notes' properties. The table updates whenever the notes change. TABLE WITHOUT ID hides the file-name column. The catch: the result is rendered, not written into the note, so it only appears where Dataview runs. Copy the note elsewhere and the reader sees the query, not the table.
Bases: a core table view
Obsidian added Bases as a core plugin in 2025. A base shows notes and their properties as a table you can filter, sort and edit, without a query language. For a list of notes with properties, it covers much of what people used Dataview tables for. Like Dataview, it shows your notes; it does not put a Markdown table into a note you can send.
Making a table readable when you share it
A table that reads well in your vault can arrive badly elsewhere:
- Copy and paste into Google Docs or Notion: plain tables usually survive, but alignment and wide layouts often do not, and Dataview or Bases tables do not come across as tables at all.
- Export to PDF: wide tables get squeezed or cut at the page edge.
- Raw Markdown: fine for people who read Markdown, a wall of pipes for everyone else.
A shared table usually has one job: let the reader find the row that matters and see its status. Three things help: a status column as short words (on track, at risk, blocked) rather than sentences, the most important column visually distinct, and no more than five columns. The same rules make a good one-page report.
myone.page, an Obsidian plugin, renders a note's Markdown tables as styled tables, and takes those hints from one optional line above the table:
%% table accentCol=1 pillCol=3 %%| Workstream | Owner | Due | Status || --- | --- | --- | --- || Payments | Ana | 04.11 | Go || Support docs | Sam | 28.10 | At risk |
pillCol=3 turns the fourth column (columns count from 0) into coloured labels by their first word: yes, go, active or paid in green; no, stop, failed or expired in red; anything else in orange. accentCol puts a column in the accent colour, cols sets column widths, and agoCol adds "N days ago" to a date column. The %% line is an Obsidian comment, so in plain Obsidian the table is still an ordinary Markdown table.
You can then share the note as a link; readers open it in a browser without Obsidian and can edit cells, and the edits come back into the note. For the other ways to share a note, see how to share an Obsidian note; for a public site of notes, see Obsidian Publish alternatives.