A comprehensive n8n node for seamless bidirectional conversion, replacement, and styling of HTML tables, CSV, and JSON formats. Features advanced table selection (including Table With Caption, Table Under Heading, Last Table), Style and Replace operations
This is an n8n community node that provides seamless bidirectional conversion between HTML tables, CSV, and JSON formats, with advanced table selection, replacement, and styling features.
CSV output: Shows full path as comments (e.g., # Section 1 > Subsection 1.1)
If no heading is found, tables fall back to table1, table2, etc. When a heading has both direct tables and subsections, direct tables are stored in a _data property.
For other presets with Multiple Tables/Objects enabled, heading detection can be manually enabled via the Enable Heading Detection toggle.
#### Cell Content Format (Data Manipulation)
When converting from HTML, you can control how rich content inside table cells is extracted:
1. Enable Show Data Manipulation
2. Set Cell Content Format:
– Plain Text (default): Strips all HTML, returning only text
– Markdown: Preserves structure using markdown syntax
Replace an existing HTML table in a document with new content (HTML, CSV, or JSON). Supports all table selection presets and advanced selectors.
Style
Apply custom styles to HTML tables, including CSS classes, inline styles, zebra striping, border styles, caption styling, and more. Ideal for preparing tables for display, reports, or emails.
#### Style Operation Parameters
HTML Input: The HTML string containing the table(s) to style
Output Field: The name of the output field to store the styled HTML (default:
styledHtml)
#### Example: Styling an HTML Table
Input HTML:
Monthly Sales
Month
Sales
January
100
February
120
Style Operation Parameters:
Table Class:
my-table
Table Style:
width: 100%; border-collapse: collapse;
Row Style:
font-size: 16px;
Cell Style:
padding: 8px;
Zebra Striping:
true
Even Row Colour:
#f2f2f2
Odd Row Colour:
#ffffff
Border Style:
solid
Border Width:
1px
Caption Style:
font-weight: bold; color: #333;
Caption Position:
top
Output HTML:
Monthly Sales
Month
Sales
January
100
February
120
Table Selection Presets
All Tables: Finds all table elements in the document
First Table Only: Finds only the first table in the document
Last Table: Finds the last table in the document
Table With Caption: Finds a table with a
element, optionally filtered by caption text. Caption is included in output (JSON, CSV, HTML).
Table Under Heading: Finds a table after a heading of a specific numeric level (1–999) and (optionally) containing specific text. Table index logic only counts direct sibling tables after the heading.
Custom: Use your own custom selector (for advanced users)
Output and n8nObject Format
n8nObject output: Directly outputs JavaScript objects for use in n8n workflows. Single-item arrays are unwrapped; multi-item arrays are wrapped in the output field.
Output field: All results are wrapped in the specified output field (default:
convertedData), except for n8nObject output, which is always in the json property.
Heading-based keys: When heading detection is enabled, output uses heading text as object keys with nested hierarchy preserved, making data more meaningful and easier to access.
Chaining: Improved detection and handling of n8nObject input/output for seamless chaining between nodes.
Breaking Changes and Migration Notes
Removed deprecated presets: 'Tables With Headers', 'Tables in Main Content', and 'Data Tables' presets have been removed. Use supported presets instead.
Table Under Heading: Heading level is now a numeric input (1–999). Table index logic only counts direct sibling tables after the heading.
Output format changes: Output wrapping and field naming are now consistent across all formats. n8nObject output is always in the 'json' property.
Migration: Review your workflows for use of removed presets and update to supported options. If using Table Under Heading, ensure headingLevel and tableIndex parameters are set correctly. Review output field usage and update downstream nodes if needed.
Debug Logging
Optional debug logging is available for development and troubleshooting. Set