Table是怎样炼成的:HtmlTable

简介:

昨天我们做的Table具有了Print方法,可以简单的打印数据。
现在我需要一个Table,可以把Table中的数据以Html的Table的格式输出。
而我只需要重写Print方法
 

1 public   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没有必要写的?
 


本文转自shyleoking 51CTO博客,原文链接:http://blog.51cto.com/shyleoking/806268

相关文章
|
8天前
|
SQL 人工智能 自然语言处理
NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法技术回顾七年发展脉络梳理
NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法技术回顾七年发展脉络梳理
NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法技术回顾七年发展脉络梳理
|
3月前
|
SQL
leetcode-SQL-1050. 合作过至少三次的演员和导演
leetcode-SQL-1050. 合作过至少三次的演员和导演
24 0
|
前端开发
前端工作总结270-el-table使用
前端工作总结270-el-table使用
79 0
|
SQL 机器学习/深度学习 自然语言处理
”想知道你家爱豆最近的演唱会?"让Text2SQL模型自动帮你回答!
”想知道你家爱豆最近的演唱会?"让Text2SQL模型自动帮你回答!
|
SQL 架构师 关系型数据库
小胖问我:group by 怎么优化?(上)
哈喽,我是狗哥,好久不见呀!是的,我又又换了工作。最近一直在面试这几天刚好整理下在面试中被问到有意思的问题,也借此机会跟大家分享下。
小胖问我:group by 怎么优化?(上)
|
SQL 存储 关系型数据库
小胖问我:group by 怎么优化?(下)
小胖问我:group by 怎么优化?
小胖问我:group by 怎么优化?(下)
|
SQL Oracle 关系型数据库
|
存储 自然语言处理 关系型数据库
从大厂不允许使用 SELECT * 说开去
从大厂不允许使用 SELECT * 说开去
121 0
|
SQL Oracle 关系型数据库
动手为王:由一条UPDATE语句引发的一波三折深入实践
当时我在『甲骨文技术大会』分享了一个关于SQL的主题,其中的一个案例推演了几个步骤,后来本文作者『刘晨』做了验证、实验,并且分享在他的博客上,今天我们整理了这篇文章和大家分享。
1675 0