If you are looking for ways to simplify the creation or maintenance or uploading of HTML tables for display within blocks or nodes, these table modules might help. These modules are not about managing Drupal database tables.

I have downloaded and tried most these modules, but spent more time with some than others. Each works in a somewhat different way - you may have try more than one to find the one that best fits your needs and workflow.

I am writing this page partly because it was so bloody difficult to find all these modules. Many developers use too few words when describing their projects, so finding them via search function is hit or miss. Some terms I tried were HTML tables, import Excel tables, import .csv tables, import Excel .csv files, node data tables, node HTML tables, create HTML tables, and table modules.

If anyone knows of other similar types of modules, please post comment below.

Note: Module capabilities are continually evolving. Please check module for latest information.

Feature Quicktables Table Manager Tables Filter CCK Matrix Field CCK TableField
Basic idea Generates blocks for tables built in specialized tables editor Input filter to display imported tables or tables built in tables editor Simplified input format (markup) for creating HTML tables CCK field for entering tabular data CCK field for entering tabular data
Drupal versions
Drupal 6.x
(.dev)

(.dev)
Drupal 5.x
Usage (as of 23 Feb 10)
D6.x versions <50 340 131 700 475
Styling options
Table class/ID specified
auto-generated ID & class

auto-generated ID & class

user specified class or choose from pre-defined

no

wrapped in
Cell classes specified
auto-generates col, row classes

auto-generates even/odd row classes; user can define classes down to individual cell level via input filter in source data table (provides very high level of control)

auto-generates col, row classes

limited to even/odd row classes, no classes on cells

highly granular auto-generated classes
Header classes specified
no, but you can work around

auto-generated

user can specify

auto-generated

no, but you can work around
Allows HTML in cells
some limitations due to handling of quotes
Easily wrappable*
Display options
Display in blocks
input filter allows embed within block

input filter allows embed within body content
Display in nodes
not intended for use in nodes, can be inserted using php

input filter allows table to be embedded within body content, also can be its own node

input filter allows embed within body content

CCK field, not embeddable in body content

CCK field, not embeddable in body content
Other
Import from .csv file / other
Other features - reorder rows - sort by column
- input filter accepts class parameters in cells
- sticky headers
- pre-defined CSS styles
- only one that supports merging cells
- multiple field types
- sticky headers
- sticky headers
- any input format allowed

* Meaning you can wrap any auto-generated table code within your own HTML inside body or block if additional styling or positioning is required - for instance, wrapping the table inside a div.

Helper Modules for Managing HTML Tables

These module(s) help format or manage HTML tables that are already built.

  • Table Alternate Rows - Input filter that inserts even and odd classes into user submitted tables within nodes (5.x, 6.x)

Comments

john.kenney’s picture

I wrote this comparison page, but don't have edit privileges to modify it.

If I did, I would want to add a column for a new module that has recently come online in beta: CCK TableField - http://drupal.org/project/tablefield.

This module is quite similar to CCK Matrix Field, except that it seems to provide more node-by-node flexibility to alter table dimensions (rows x columns) and it also provides built-in 'add table' mechanism on a per node basis to have multiple tables per page.

apaderno’s picture

The currently assigned author results another user; that could explain why you cannot edit it.

john.kenney’s picture

oh, yes, sorry. i do know why i can't edit it. but that's a whole other story (http://drupal.org/node/558398).

i meant the comment only by way to introduction so people would know where to turn should they see problems with the page.

john.kenney’s picture

Please note that the D6 .dev version of Tablemanager is buggy. Many of the major features do work, but there are some visible features do not work - for example, you can see and click a 'save' button on the 'edit table' screen, but it generates an error and doesn't actually save anything.

As a result of these bugs and unclear future development path, I no longer use the module myself.

john.kenney’s picture

after some months, a new HTML tables module is set to emerge under the name NodeTable. http://drupal.org/project/nodetable

it will have many of the same features as TableManager, but code base has been completely rewritten and updated for D6 environment.

john.kenney’s picture

the alpha version of Node Table module has been released. http://drupal.org/project/nodetable

vthirteen’s picture

without having used any of those modules yet, i suggest to take into account two more factors in the comparison:
- translation: how the new fields are dealt by the core locale module and by the contributed i18n module
- how they integrate with views

john.kenney’s picture

no idea about translation. i don't use those modules and haven't tested any of these modules with them. if anyone has, please share.

as to views integration. i'm no views expert, but think the answer is mostly none.

for the new tables module i've been sponsoring (http://drupal.org/project/nodetable), the answer is probably 'yes' because it generates full fledged nodes with unique content type for each table. otherwise, all the tables are entities within a node and i don't think you can use views on something like that. but i could be wrong.

realityloop’s picture

Provided your input filter has Tables Filter enabled it will indeed work with Blocks

john.kenney’s picture

updated accordingly.

thanks!

realityloop’s picture

Hi,

Tables Filter now has D5 and D7 releases!

It also recently got summary support for w3c compliance.

Cheers,
Brian