CSV-backed data table idea

I still believe that this feature is so powerful that it should be a core feature in Obsidian.

Until that happens, it would be amazing if @death.au and @coddingtonbear could somehow join forces and get death.au’s dynamic features into coddingtonbear’s .md preview mode integration.

4 Likes

Hi all, this thread has been quiet for a long time. I have a project that would use Obsidian for linking and making sense of data about companies (currently all in a CRM). The data can (will be) exported to .csv

I’m looking for an easy (no programming required) way to have every record be a note in Obsidian and then add tags based on what some fields contain (e.g., member of another group?)

Any help greatly appreciated!

1 Like

+1 This would be amazing.
For me, just to embed a csv. file, preview it and ability to indendt/outdent would be amazing. Tables are such a great way to display things.

1 Like

Is it possible to convert the csv into native Obsidian notes and links?

1 Like

This plugin is really useful. Thanks for sharing it!

Is there any chance that you will update it to do any kind of markdown handling? For example, linking to another file. In a basic table I have things like [[someFile]] in many areas. When included via the .csv file, that renders exactly as shown above, rather than creating a link to someFile.

I’m trying to move this table to a .csv file so I can manage it with LibreOffice. The ability to include the file as a .csv is really, really, handy. However, if I lose the ability to link to other files within the table, then the table itself will lose most of the purpose of existing in the first place.

Perhaps this functionality already exists, and I’m just missing it?

When created directly in a table:

When imported via a .csv file using your (lovely) plugin:

So for me rendering a csv works using dataview, however sadly with this I csnnot edit the csv and also both the graph and excalibrain dont visualize the connections to other pages that are marked with [[brackets]] in the original csv document (i added them through libre office)

1 Like

Unfortunately, deathau’s plugin ceased to work (after 11k and counting downloads!!) On newer versions of Obsidian (v1.2+) and no other plugin offers exactly same features, like to translate csv contents without the need to create extra files with pseudo embeds - on top his plugin allows to edit csv as well, just amazing what deathau’s plugin does. Exactly how csv files should be handled by Obsidian.

…I just can’t understand why Obsidian doesn’t support csv files out of the box as csv files are interlinked with tables and are tables, just comma or tab delimited entries.
Would somebody be so kind to fork and update deathau’s original plugin, please?

2 Likes

Here’s a general outline of how you might approach developing such a plugin:

  1. Plugin Initialization:
    a. Set up the plugin framework for Obsidian.
    b. Define a function to detect and parse CSV file embeds.

  2. CSV Rendering:
    a. Use a library or build a parser to read CSV data from the embedded file.
    b. Generate HTML markup for rendering the CSV data as a table.
    c. Allow customization for rendering options (e.g., headers, formatting).

  3. Markdown Parsing:
    a. Utilize Obsidian’s Markdown parser to process cell contents.
    b. Handle internal links, formatting, and other embedded content within cells.

  4. Table Editor:
    a. Implement a table editor interface for users to edit CSV files.
    b. Enable users to add, remove, and modify rows and columns.
    c. Consider adding basic spreadsheet-like formulas and cell references.

  5. Formula Calculation:
    a. Implement a formula engine to handle spreadsheet-like formulas and use b2b data enrichment tools.
    b. Define syntax for formulas and handle dependencies.
    c. Recalculate formulas on demand or during rendering.

  6. User Interface:
    a. Design a user-friendly interface for embedding CSV files and editing tables.
    b. Consider integrating the table editor into the Obsidian workspace.

  7. Testing:
    a. Test the plugin with various CSV files and scenarios to ensure robustness.
    b. Gather user feedback to identify improvements and additional features.

  8. Documentation:
    a. Provide clear documentation on how to use the plugin.
    b. Include examples, customization options, and troubleshooting information.

  9. Community Engagement:
    a. Engage with the Obsidian community to gather feedback.
    b. Consider open-sourcing the plugin to allow for contributions.

  10. Updates and Maintenance:
    a. Stay informed about Obsidian updates and adapt the plugin accordingly.
    b. Address bug reports and enhance features based on user feedback.