• Table是怎样炼成的:HtmlTable


    昨天我们做的Table具有了Print方法,可以简单的打印数据。
    现在我需要一个Table,可以把Table中的数据以Html的Table的格式输出。
    而我只需要重写Print方法
     1public class HtmlTable : Table
     2    {
     3        public HtmlTable(string reportName, ColumnCollection cols)
     4            : base(reportName, cols)
     5        {
     6
     7        }

     8
     9        public override void Print()
    10        {
    11            System.Text.StringBuilder sb = new StringBuilder();
    12
    13            //输出Table的开始标记
    14            sb.Append("<table>\n");
    15            //输出表头
    16            sb.Append("<thead>\n<tr>\n");
    17            foreach (Column col in this.Columns)
    18            {
    19                sb.AppendFormat("<th>{0}</th>\n", col.ColumnName);
    20            }

    21            sb.AppendLine("</tr>\n</thead>");
    22
    23
    24            //输出数据行
    25            foreach (Row row in this.Rows)
    26            {
    27                sb.AppendLine("<tr>");
    28                foreach (object obj in row.ItemArray)
    29                {
    30                    sb.AppendFormat("<td>{0}</td>\n", obj);
    31                    //System.Console.Write("{0}\t", obj);
    32                }

    33                sb.AppendLine("</tr>");
    34                System.Console.WriteLine();
    35            }

    36
    37            //输出Table的结束标记
    38            sb.Append("</table>\n");
    39
    40            System.Console.WriteLine(sb.ToString());
    41
    42        }

    43
    44    }

    现在我将SaleReport改继承HtmlTable(参见Table是怎样炼成的:SaleReport Table的继承者 ),其他都不要改动。
    然后我们运行该SaleReport

     1            SaleReport report = new SaleReport("销售台帐");
     2            report.AddRecord("Alex""Phone"2600);
     3            report.AddRecord("Alex""PC"4560);
     4            report.AddRecord("Alex""Table"234);
     5            report.AddRecord("Sidney""Phone"2100);
     6            report.AddRecord("Sidney""TV"4500);
     7            report.AddRecord("Tom""oven"300);
     8            report.AddRecord("Leo""oven"240);
     9
    10            report.Print();

    运行的结果是

     1<table>
     2<thead>
     3<tr>
     4<th>序号</th>
     5<th>姓名</th>
     6<th>商品名称</th>
     7<th>日期</th>
     8<th>数量</th>
     9</tr>
    10</thead>
    11<tr>
    12<td>1</td>
    13<td>Alex</td>
    14<td>Phone</td>
    15<td>2007-2-14 20:39:31</td>
    16<td>2600</td>
    17</tr>
    18<tr>
    19<td>2</td>
    20<td>Alex</td>
    21<td>PC</td>
    22<td>2007-2-14 20:39:31</td>
    23<td>4560</td>
    24</tr>
    25<tr>
    26<td>3</td>
    27<td>Alex</td>
    28<td>Table</td>
    29<td>2007-2-14 20:39:31</td>
    30<td>234</td>
    31</tr>
    32<tr>
    33<td>4</td>
    34<td>Sidney</td>
    35<td>Phone</td>
    36<td>2007-2-14 20:39:31</td>
    37<td>2100</td>
    38</tr>
    39<tr>
    40<td>5</td>
    41<td>Sidney</td>
    42<td>TV</td>
    43<td>2007-2-14 20:39:31</td>
    44<td>4500</td>
    45</tr>
    46<tr>
    47<td>6</td>
    48<td>Tom</td>
    49<td>oven</td>
    50<td>2007-2-14 20:39:31</td>
    51<td>300</td>
    52</tr>
    53<tr>
    54<td>7</td>
    55<td>Leo</td>
    56<td>oven</td>
    57<td>2007-2-14 20:39:31</td>
    58<td>240</td>
    59</tr>
    60</table>

    现在我们得到了一个可以在HTML上产生表格的结果了。
    谁说这个Table没有必要写的?

  • 相关阅读:
    【Codeforces 349B】Color the Fence
    【Codeforces 459D】Pashmak and Parmida's problem
    【Codeforces 467C】George and Job
    【Codeforces 161D】Distance in Tree
    【Codeforces 522A】Reposts
    【Codeforces 225C】Barcode
    【Codeforces 446A】DZY Loves Sequences
    【Codeforces 429B】Working out
    【Codeforces 478C】Table Decorations
    【Codeforces 478C】Table Decorations
  • 原文地址:https://www.cnblogs.com/shyleoking/p/650709.html
Copyright © 2020-2023  润新知