We often need to display tabular data while building websites. Sometimes we know beforehand all of the columns we will need to display, but sometimes we don't.
Handling tabular data with dynamically defined columns is a bit harder than handling data with a fixed number of columns because you will need to dynamically render the columns and the rows. On the other hand, when dealing with a fixed number of columns, you need to render just the rows.
I chose to work with dynamically defined columns for two reasons. First, it is more complex, and secondly, once you learn how to deal with dynamically defined columns, you will be able to work on the simpler case; that is, fixed columns.