def as_html(self, fields='*'):
        """
        Output the table as a rudimentary HTML table.
        @param fields: fields in the table to be shown in the table
                       - listing '*' as a field will add all unnamed fields
                       - starting a field name with '-' will suppress that name
        @type fields: list of strings or a single space-delimited string
        @return: string of generated HTML representing the selected table row attributes
        """
        fields = self._parse_fields_string(fields)
        def td_value(v):
            return '<td><div align="{}">{}</div></td>'.format(('left','right')[isinstance(v, (int, float))], str(v))
        def row_to_tr(r):
            return "<tr>" + "".join(td_value(getattr(r, fld)) for fld in fields) + "</tr>\n"
        ret = ""
        ret += "<table>\n"
        ret += "<tr>" + "".join(map('<th><div align="center">{}</div></th>'.format, fields)) + "</tr>\n"
        ret += "".join(map(row_to_tr, self))
        ret += "</table>"
        return ret
Output the table as a rudimentary HTML table.
        @param fields: fields in the table to be shown in the table
                       - listing '*' as a field will add all unnamed fields
                       - starting a field name with '-' will suppress that name
        @type fields: list of strings or a single space-delimited string
        @return: string of generated HTML representing the selected table row attributes