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

相关文章
|
Oracle Java 关系型数据库
深入理解SpringBoot之启动探究
  SpringApplication是SpringBoot的启动程序,我们通过它的run方法可以快速启动一个SpringBoot应用。可是这里面到底发生了什么?它是处于什么样的机制简化我们程序启动的?接下来我们就带着这两个问题来揭开SpringBoot启动过程的神秘面纱。
1403 0
|
关系型数据库 Shell 数据库
|
存储 数据库
采用左右值编码来存储无限分级树形结构的数据库表设计
本文转载:http://www.cnblogs.com/yongzhi/articles/1187149.html 这篇文章也很不错:http://hi.baidu.com/zhizheqianlv/item/543fd806c92673db73e6761c
1873 0
|
编解码 编译器
简化指令与复杂指令的区别!好文
这里就不去管细节,简单来谈一下,ARM和X86之间为什么不太具有可比性的问题。要搞清楚这个问题首先要明白什么是架构,之前也有很多人提到了架构不同,但架构是什么意思?它是一个比较抽象的概念,不太容易用几句话就解释清楚。
1468 0
|
2天前
|
弹性计算 运维 搜索推荐
三翼鸟携手阿里云ECS g9i:智慧家庭场景的效能革命与未来生活新范式
三翼鸟是海尔智家旗下全球首个智慧家庭场景品牌,致力于提供覆盖衣、食、住、娱的一站式全场景解决方案。截至2025年,服务近1亿家庭,连接设备超5000万台。面对高并发、低延迟与稳定性挑战,全面升级为阿里云ECS g9i实例,实现连接能力提升40%、故障率下降90%、响应速度提升至120ms以内,成本降低20%,推动智慧家庭体验全面跃迁。
|
3天前
|
数据采集 人工智能 自然语言处理
3分钟采集134篇AI文章!深度解析如何通过云无影AgentBay实现25倍并发 + LlamaIndex智能推荐
结合阿里云无影 AgentBay 云端并发采集与 LlamaIndex 智能分析,3分钟高效抓取134篇 AI Agent 文章,实现 AI 推荐、智能问答与知识沉淀,打造从数据获取到价值提炼的完整闭环。
351 91
|
10天前
|
人工智能 自然语言处理 前端开发
Qoder全栈开发实战指南:开启AI驱动的下一代编程范式
Qoder是阿里巴巴于2025年发布的AI编程平台,首创“智能代理式编程”,支持自然语言驱动的全栈开发。通过仓库级理解、多智能体协同与云端沙箱执行,实现从需求到上线的端到端自动化,大幅提升研发效率,重塑程序员角色,引领AI原生开发新范式。
851 156
|
3天前
|
数据采集 缓存 数据可视化
Android 无侵入式数据采集:从手动埋点到字节码插桩的演进之路
本文深入探讨Android无侵入式埋点技术,通过AOP与字节码插桩(如ASM)实现数据采集自动化,彻底解耦业务代码与埋点逻辑。涵盖页面浏览、点击事件自动追踪及注解驱动的半自动化方案,提升数据质量与研发效率,助力团队迈向高效、稳定的智能化埋点体系。(238字)
257 156