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
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

CSV All-in-One

hangeol-changhangeol-chang2k downloads

all about CSV.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates6

A plugin for creating .csv files, modifying their data, saving them, and performing various CSV-related operations.


Other Language Docs

  • Korean
  • maybe add later...

Brief Notice & Description

This plugin is built with the assumption that you are using DataviewJS. The main purpose of this plugin is to create CSV files and add data to them.


Examples

With Obsidian Command

Creating a CSV File

  • Ctrl + P -> search for 'Create CSV Table' Enter the required data and click Submit as shown below: create_CSV_table

Search CSV Files

  • UI modifications are planned
  • Ctrl + P -> search for 'Open CSV Explorer'
  • You can move or delete CSV files.

CSV_explorer

With DataviewJS

- View as table

  • Source Code
const CSVPlugin = app.plugins.plugins['CSV-allinone'];

const fileName = "HouseKeeping/t/2025-01.csv"; 

CSVPlugin.readCSV(app, fileName).then(res => {
    let headers = []
    let defaultValues = {}
    for(const [key, value] of Object.entries(res.headers)) {
        headers.push(key)
        defaultValues[key] = ""
    }
    const columnLength = headers.length;

    let rows = []
    for(const row of res.rows) {
        const newRow = [row[0].slice(5), ...row.slice(1)]
        rows.push(newRow);
    }
    dv.table(headers, rows);
})
  • Result view_CSV_table

- Add new data (row)

This feature uses the Buttons plugin.

  • Feature Description

    • Adds a row to a specific CSV file.
    • The data is not processed once read. If real-time updates are needed, you must wait for the file to update and read it again separately.
    • Default values can be entered.
  • Source Code

const CSVPlugin = app.plugins.plugins['CSV-allinone'];
const { createButton } = app.plugins.plugins["buttons"];

const fileName = "HouseKeeping/t/2025-01.csv"; 
const openCSVAppendModal = async(app, headers, f, defaults) => {
     CSVPlugin.openCSVInputModal(app, headers, f, defaults)
}

CSVPlugin.readCSV(app, fileName).then(res => {
    let headers = []
    let defaultValues = {}
    for(const [key, value] of Object.entries(res.headers)) {
        headers.push(key)
        defaultValues[key] = ""
    }
    const columnLength = headers.length;

    let rows = []
    for(const row of res.rows) {
        const newRow = [row[0].slice(5), ...row.slice(1)]
        rows.push(newRow);
    }

    dv.table(headers, rows);
    // default values
    defaultValues['Date'] = moment(Date.now()).format('YYYY-MM-DD');
    defaultValues['Category'] = res.headers['Category'].options[0];
    defaultValues['Description'] = '-' ;

    dv.span(
        createButton({
            app, el: this.container, 
            args: {
                name: "open CSV input modal",
                class: ""
            },
            clickOverride: {
                click: openCSVAppendModal, 
                params: [app, res.headers, fileName, defaultValues]
            }
        })
    )
})
  • Result add_row_to_table

- Add new column

- Delete existing column

With Templater

  • I am not familiar with Templater, so I can't provide much detail. Apologies.

Usage/Features


APIs

Handle File

  • readCSV

    • Parameters (app: App, fileName: string)
    • Return: Promise<CSVTable | null>

      Takes a filename and returns the corresponding CSVTable.

  • saveCSV

    • Parameters (app: App, fileName: string, table: CSVTable)
    • Return: void

      Saves the CSVTable data into the given file.

CSVTable (class)

-- Functions available within the class will be documented here.

Header (type)

CSVRow (type)

CSVCellType (type)

How it Works

When you create a CSV file using this plugin, two files are generated: .csv and .csv.meta. If you load an existing CSV file, a .csv.meta file is generated automatically.

The CSV file contains basic table data, while the .meta file contains information about each column's attributes. Currently (v0.1.0), the .meta file only stores column types, but in the future, it will include additional data, such as select values or validity checks.

Contributing

Feel free to contribute however you'd like. Contributions are always welcome!

License

  • MIT
73%
HealthGood
ReviewCaution
About
Create and edit CSV files in your vault, add or remove rows, and save changes directly from Obsidian. Read and render CSV data with DataviewJS, manage files via a CSV explorer, and append rows using Buttons integration.
CSVTablesFiles
Details
Current version
0.1.5
Last updated
11 months ago
Created
Last year
Updates
6 releases
Downloads
2k
Compatible with
Obsidian 1.7.7+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Sponsor
Buy Me a Coffee
Author
hangeol-changhangeol-chang
github.com/Hangeol-Chang
GitHubhangeol-chang
  1. Community
  2. Plugins
  3. CSV
  4. CSV All-in-One

Related plugins

Advanced Tables

Improved table navigation, formatting, and manipulation.

Notebook Navigator

A better file browser and calendar inspired by Apple Notes, Bear, Evernote and Day One.

Local REST API & MCP Server

Unlock your automation needs by interacting with your notes over a secure REST API.

QuickAdd

Quickly add new notes or content to your vault.

Recent Files

Display a list of recently opened files.

Omnisearch

Intelligent search for your notes, PDFs, and OCR for images.

Claudian

Embeds Claude Code/Codex as an AI collaborator in your vault. Your vault becomes agent's working directory, giving it full agentic capabilities: file read/write, search, bash commands, and multi-step workflows.

Image Converter

Convert, compress, resize, annotate, markup, draw, crop, rotate, flip, align, drag-resize, rename with variables, and batch process images: WEBP, JPG, PNG, HEIC, TIF

Text Extractor

A (companion) plugin to facilitate the extraction of text from images (OCR) and PDFs.

Flexplorer

Enhance the file explorer with custom sorting, pinning, and hiding.