If you don't have a way of creating tables automatically, or want more control over them, this tutorial should explain how. So, a basic table, as discussed, is:
As you can see, columns headers are created by ! column name. Cells are created by | cell text. The divider between rows is |-. You can add an extra column by just sticking ! new column name at the end of the last column name. To fill the cells in that column, you need to add another cell to each row: fill it by typing |cell text. If you want to add an extra row, just add |- to the table, and fill it with however many cells are appropriate.
To recap, the markup is:
{|
table start
|+
table caption,optional; only between table start and first table row
!
table header cell, optional. Consecutive table header cells may be added on same line separated by double marks (!!) or start on new lines, each with its own single mark (!).
|-
table row,optional on first row; wiki engine assumes the first row
|
table data cell, required! Consecutive table data cells may be added on same line separated by double marks (||) or start on new lines, each with its own single mark (|).
|}
table end
Blank spaces at the beginning of a line are ignored.
Escaping to insert a pipe (|) character into a table can be done using the <nowiki> markup.
using || and !! with tables
The above markup must start on a new line. This includes the cell markup (| and !). But the double cell markup (|| and !!) can optionally be used for adding consecutive cells to a single line.
For example, this would produce the same table as above:
class="wikitable" is used with a lot of tables on Wikipedia, and adds some standard styling.
HTML attributes
All table markup, except table end (|}), optionally accepts one or more HTML attributes on the same line.
Cell markup (|, ||, !, !!) and caption markup (|+) hold content. So separate any attributes from content with a single pipe (|), even when cell content is on a new line, which is permissible.
Cell content may follow its cell markup on the same line after any optional HTML attributes, or on lines below the cell content. Content that uses markup that itself needs to start on a new line, such as lists, headings, or nested tables, must be on its own new line.
Table and row markup ({| and |-) do not directly hold content. Do not add pipe (|) after their optional attributes. If a pipe is added improperly after attributes for the table or row markup, the parser will delete it and any final attribute that was touching the improper pipe. An example is the class="wikitable" above.