Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Join the community
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

CSV Table

coddingtonbearcoddingtonbear32k downloads

Render CSV data as a table within your notes.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates7

Have data in a CSV file that you'd like to render as a table in Obsidian? Now you can.

Quickstart

Imagine you have the following CSV file named countries.csv:

name,capitol,population
United States of America,"Washington, DC",328200000
Colombia,Bogota,50340000
Russia,Moscow,144400000

The following code block:

```csvtable
source: countries.csv
```

will render a table like:

name capitol population
United States of America Washington, DC 328200000
Colombia Bogota 50340000
Russia Moscow 144400000

Options

  • source: (Required) Path (relative to your vault's root) to the csv file to render within your notes.
  • csvOptions: Options to use for decoding the referenced CSV file; see https://csv.js.org/parse/options/ for available options.
  • columns: A list of columns to render. Each item may be either the name of a field to display or an expression (see "Expressions" below), and can be re-named. If unspecified, all columns in the referenced CSV will be rendered. See "Selecting particular columns" below for details.
  • filter: A list of filter expressions (see "Expressions" below) or a single filter expression to use for limiting which rows of the referenced CSV will be displayed. If unspecified, all rows of the referenced CSV will be rendered taking into account the value specified for maxRows below. See "Filtering displayed rows" for details.
  • sortBy: A list of sort expressions (see "Expressions" below) or a single sort expression to use for sorting the displayed rows. If unspecified, rows will be displayed in the order they appear in the referenced CSV. See "Sorting Rows" for details.
  • columnVariables: A mapping of variable name to column name allowing you to set a name for use in filter or columns above to reference the value of a field that is not a valid variable name.
  • maxRows: The maximum number of rows to display. If unspecified, all unfiltered rows of the referenced CSV will be displayed.

Expressions

This library uses filtrex for expression evaluation; see their documentation to see more information about the expression syntax and what functions are available: https://github.com/m93a/filtrex#expressions.

See "Filtering displayed rows" for an example of a filter expression in action, but realistically they work exactly as you'd probably expect.

Selecting particular columns

You can use the columns field to control which columns of your CSV file to render, e.g:

```csvtable
columns:
- name
- population
source: my_csv_file.csv
```
name population
United States of America 328200000
Colombia 50340000
Russia 144400000

It's also possible for you to set better names for your columns or use expressions:

```csvtable
columns:
- expression: name
  name: Country Name
- expression: population  / 1000000
  name: Population (Millions)
source: my_csv_file.csv
```
Country Name Population (Millions)
United States of America 328.2
Colombia 50.34
Russia 144.4

Filtering displayed rows

Maybe you would like to display only a subset of the rows of your CSV? If so, you can provide a filter expression to limit which rows are shown:

```csvtable
source: my_csv_file.csv
filter: population < 100000000
```
name population
Colombia 50340000

By default, the parser will attempt to cast the values of each field to an integer, boolean, or date object where appropriate for use in your filter expressions. Also, note that your filter expression can also be provided as a list; those expressions will be and-ed together, e.g.:

```csvtable
source: my_csv_file.csv
filter:
- population < 100000000
- name == "Colombia"
```

Note that the filtering language requires that you use double-quoted strings in comparisons -- if you had entered name == 'Colombia' above, the filter would not have returned results.

Sorting Rows

If you would like to sort the rows of your displayed CSV, you can provide a sort expression:

```csvtable
source: my_csv_file.csv
sortBy: name
```
name population
Colombia 50340000
Russia 144400000
United States of America 328200000

Additionally, you can specify your sortBy expression as a list; the document will be sorted by all specified fields in rank order:

```csvtable
source: my_csv_file.csv
sortBy:
- columnOne
- columnTwo
```

It's also possible for you to sort your displayed data in reverse order if you specify your sortBy expression using an extended format allowing you to specify both the expression and direction of sort:

```csvtable
source: my_csv_file.csv
sortBy:
- expression: name
  reversed: true
```
name population
United States of America 328200000
Russia 144400000
Colombia 50340000
65%
HealthFair
ReviewCaution
About
Render CSV files as tables inside notes by referencing a CSV source. Select or rename columns, filter and sort rows with expressions, and limit displayed rows for concise views.
CSVTablesData
Details
Current version
1.2.0
Last updated
5 years ago
Created
5 years ago
Updates
7 releases
Downloads
32k
Compatible with
Obsidian 0.11.10+
License
MIT
Report bugRequest featureReport plugin
Author
coddingtonbearcoddingtonbear
coddingtonbear.net/
GitHubcoddingtonbear
  1. Community
  2. Plugins
  3. CSV
  4. CSV Table

Related plugins

Advanced Tables

Improved table navigation, formatting, and manipulation.

Datacore

An even faster reactive query engine for the data obsessed.

Table to CSV Exporter

Export tables from a pane in reading mode into CSV files.

Dataview

Run advanced queries over your vault.

CSV Editor

Edit CSV files.

CSV Lite

Just open and edit a CSV file in workspace view, no more. Keep it simple.

Tracker

Track occurrences and numbers in your notes.

Meld Encrypt

Hide secrets in your notes.

Charts

Easily create interactive charts in your notes.

Sheet Plus

Create Excel-like spreadsheets and easily embed them in Markdown.