昨天我们做的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没有必要写的?

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

Table是怎样炼成的:HtmlTable相关推荐

  1. 炼成的:精妙SQL语句介绍

    炼成的:精妙SQL语句介绍 [ 来源:学网 | 作者:学网 | 时间:2005-4-14 | ] 如何从一位菜鸟蜕变成为高手,灵活使用的SQL语句是必不可少的.本文收集了部分比较经典,常用的SQL语句 ...

  2. [分享]高手是怎样炼成的:精妙SQL语句介绍

    [ 分享 ] 高手是怎样炼成的 : 精妙 SQL 语句介绍 如何从一位菜鸟蜕变成为高手,灵活使用的 SQL 语句是必不可少的.本文收集了部分比较经典,常用的 SQL 语句供大家参考,希望对大家有所帮助 ...

  3. 不知不觉,我竟炼成了一枚 Markdown 深度用户

    最开始看见 Markdown 这个词,似乎是从招聘网站上. 当时,我虽然也下载了一个非常简单的编辑器,参照教程小小试了一下,但的确没觉得它会有什么大用处. 它学起来很简单,但这也意味着功能简陋,看上去 ...

  4. 从0到1:饿了么风控计数服务是如何炼成的

    GitChat 作者:伍正云 原文: 从0到1:饿了么风控计数服务是如何炼成的 关注公众号:GitChat 技术杂谈,一本正经的讲技术 引言 2017年4月份从饿了么正式进入多活领域开始,也预示着饿了 ...

  5. 干货 | AI 工程师必读,从实践的角度解析一名合格的AI工程师是怎样炼成的

    从年初起,几家国际大厂的开发者大会,无论是微软Build.Facebook F8还是稍后的Google I/O,莫不把"AI优先"的大旗扯上云霄. 如果这一波AI大潮只是空喊几句口 ...

  6. [转载] 钢铁是怎样炼成的——第一部第二章

    参考文献:尼·奥斯特洛夫斯基(著), 黄树南(译). 钢铁是怎样炼成的. 桂林: 漓江出版社, 2005. 一个惊天动地的消息像旋风一样刮进了这个小城:"沙皇被推翻了!"城里的人都 ...

  7. 一场稳定、高清、流畅的大型活动直播是怎么炼成的?

    2019独角兽企业重金招聘Python工程师标准>>> 双11猫晚是家喻户晓的综艺晚会,在今年的双11,阿里集团为2500万用户提供了一场在线直播视觉盛宴.网友评价这是一场既稳定流畅 ...

  8. 怎样成为php高手,怎么成为php高手?如何自学成为php高手?优秀的PHP开发者是怎样炼成的?-PHP教程-基础篇-php语法基础--创业的风,吹向了年轻之长藤个人博客网站...

    怎么成为php高手?如何自学成为php高手?优秀的PHP开发者是怎样炼成的?要炼成php高手绝非一日之功劳,必须是通过系统的,高效的方法才能达到巅峰!何为巅峰呢? 很多年前,也许我们还学着原生的php ...

  9. 专访梅耶·马斯克:硅谷钢铁侠是怎样被炼成的?

    贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 伊隆·马斯克的创新.天才和成功,震惊了所有地球人,但不包括梅耶女士. "他的天才都是从我这里继承的". 说这话的时候, ...

最新文章

  1. Linux Centos7.x 安装部署Mysql5.7几种方式的操作手册
  2. 深入理解JVM之JIT编译器(二)
  3. Hyperledger Fabric 智能合约实战 (2)软件安装Docker、 Docker-composer、go
  4. 如何将usb摄像头连接到虚拟机vmware ubuntu系统上?
  5. App 不想被“点名”,mPaaS 隐私合规检测为开发者护航数字生态建设
  6. 神经网络测试结果很差,该怎么做
  7. vue-cli脚手架的.babelrc文件
  8. 中国电子学会scratch等级考试一级
  9. OpenCV-Sobel边缘检测
  10. 动态代理(2)----动态代理和AOP
  11. win10+linux系统进入安全模式,Win10进入安全模式的方法
  12. apache+weblogic获取客户端访问的真正ip
  13. 电机学第一章(磁路的基本定律)
  14. Pymol教程--Caver插件 研究蛋白通道
  15. 麒麟系统更改SSH端口号
  16. 开播虚拟人物特效插件 yy歪歪直播使用主播专用
  17. 项目管理第十二章项目采购管理
  18. 一张“黑洞”照片需半吨重硬盘?更逆天的操作还有这些……
  19. 基于STL的演讲比赛流程管理系统
  20. 一种字符编码猜测工具的实现方法

热门文章

  1. rsa前后端加密流程_不懂前后端分离?这篇就够了
  2. unity贪吃蛇c 语言代码,unity实现简单贪吃蛇游戏
  3. 修改pom文件_自动化测试基础篇:Selenium 框架设计(POM)
  4. python string.format(),Python string.format()百分比,不取整
  5. h5页面保存img_如何设计H5编辑器中的模版库并实现自动生成封面图
  6. android访问静态内部类,Java 内部类详解
  7. java okhttp3 工具类,Retrofit+okhttp+Rxjava网络请求工具类
  8. Spark学习笔记:索引分区映射
  9. Scrapy框架学习笔记:猫眼爬虫
  10. Python编程基础07:选择结构