用java生成html文件實現(xiàn)原理及代碼
更新時間:2013年08月15日 16:13:45 作者:
用printStream來向html文件里輸出數(shù)據(jù),先創(chuàng)建一個StringBuilder對象,通過append方法來為其添加html語句,具體實現(xiàn)如下,感興趣的朋友可以參考下,希望對大家有所幫助
原理跟用java生成jsp的servlet差不多。我們可以用printStream來向html文件里輸出數(shù)據(jù)。
先創(chuàng)建一個StringBuilder對象,通過append方法來為其添加html語句。如下面例子所示:
StringBuilder sb = new StringBuilder();
Properties fileProperties = getProperties("file");
Properties sqlProperties = getProperties("sql");
PrintStream printStream = new PrintStream(new FileOutputStream(
"report.html"));
sb.append("<html>");
sb.append("<head>");
sb.append("<title>每日運營報表</title>");
sb.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />");
sb.append("<style type=\"text/css\">");
sb.append("TABLE{border-collapse:collapse;border-left:solid 1 #000000; border-top:solid 1 #000000;padding:5px;}");
sb.append("TH{border-right:solid 1 #000000;border-bottom:solid 1 #000000;}");
sb.append("TD{font:normal;border-right:solid 1 #000000;border-bottom:solid 1 #000000;}");
sb.append("</style></head>");
sb.append("<body bgcolor=\"#FFF8DC\">");
sb.append("<div align=\"center\">");
sb.append("<br/>");
sb.append("<br/>");
List<Map<String, Object>> result1 = getRpt(sqlProperties
.getProperty("sql1"));
for (Map.Entry<String, Object> m : result1.get(0).entrySet()) {
sb.append(fileProperties.getProperty("file1"));
sb.append(m.getValue());
}
sb.append("<br/><br/>");
輸出的話,也很簡單。
sb.append("</div></body></html>");
printStream.println(sb.toString());
再上傳一張我用java生成的一個測試html,還沒有調(diào)用線上數(shù)據(jù)。大家在實際應(yīng)用的時候可以利用sql語句,list來填充表格。
下面給一個我寫的例子
sb.append("<table border=\"1\"><tr>");
for (Map.Entry<String, Object> m : result.get(0).entrySet()) {
sb.append("<th>");
sb.append(m.getKey());
sb.append("</th>");
}
sb.append("</tr>");
for (int i = 0; i < result.size(); i++) {
sb.append("<tr>");
for (Map.Entry<String, Object> m : result.get(i).entrySet()) {
sb.append("<td>");
sb.append(m.getValue());
sb.append("</td>");
}
sb.append("</tr>");
}
sb.append("</table>");
故事就是這樣。下集更精彩~
先創(chuàng)建一個StringBuilder對象,通過append方法來為其添加html語句。如下面例子所示:
復(fù)制代碼 代碼如下:
StringBuilder sb = new StringBuilder();
Properties fileProperties = getProperties("file");
Properties sqlProperties = getProperties("sql");
PrintStream printStream = new PrintStream(new FileOutputStream(
"report.html"));
sb.append("<html>");
sb.append("<head>");
sb.append("<title>每日運營報表</title>");
sb.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />");
sb.append("<style type=\"text/css\">");
sb.append("TABLE{border-collapse:collapse;border-left:solid 1 #000000; border-top:solid 1 #000000;padding:5px;}");
sb.append("TH{border-right:solid 1 #000000;border-bottom:solid 1 #000000;}");
sb.append("TD{font:normal;border-right:solid 1 #000000;border-bottom:solid 1 #000000;}");
sb.append("</style></head>");
sb.append("<body bgcolor=\"#FFF8DC\">");
sb.append("<div align=\"center\">");
sb.append("<br/>");
sb.append("<br/>");
List<Map<String, Object>> result1 = getRpt(sqlProperties
.getProperty("sql1"));
for (Map.Entry<String, Object> m : result1.get(0).entrySet()) {
sb.append(fileProperties.getProperty("file1"));
sb.append(m.getValue());
}
sb.append("<br/><br/>");
輸出的話,也很簡單。
復(fù)制代碼 代碼如下:
sb.append("</div></body></html>");
printStream.println(sb.toString());
再上傳一張我用java生成的一個測試html,還沒有調(diào)用線上數(shù)據(jù)。大家在實際應(yīng)用的時候可以利用sql語句,list來填充表格。

下面給一個我寫的例子
復(fù)制代碼 代碼如下:
sb.append("<table border=\"1\"><tr>");
for (Map.Entry<String, Object> m : result.get(0).entrySet()) {
sb.append("<th>");
sb.append(m.getKey());
sb.append("</th>");
}
sb.append("</tr>");
for (int i = 0; i < result.size(); i++) {
sb.append("<tr>");
for (Map.Entry<String, Object> m : result.get(i).entrySet()) {
sb.append("<td>");
sb.append(m.getValue());
sb.append("</td>");
}
sb.append("</tr>");
}
sb.append("</table>");
故事就是這樣。下集更精彩~
相關(guān)文章
springboot?aop里的@Pointcut()的配置方式
這篇文章主要介紹了springboot?aop里的@Pointcut()的配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11Java網(wǎng)絡(luò)編程之TCP通信完整代碼示例
這篇文章主要介紹了Java網(wǎng)絡(luò)編程之TCP通信完整代碼示例,具有一定借鑒價值,需要的朋友可以了解下。2017-12-12SpringBoot接口正確接收時間參數(shù)的幾種方式
這篇文章主要給大家介紹了關(guān)于SpringBoot接口正確接收時間參數(shù)的相關(guān)資料,文中通過代碼示例介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用springboot具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09Java數(shù)組,去掉重復(fù)值、增加、刪除數(shù)組元素的方法
下面小編就為大家?guī)硪黄狫ava數(shù)組,去掉重復(fù)值、增加、刪除數(shù)組元素的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10spring/springboot整合curator遇到的坑及解決
這篇文章主要介紹了spring/springboot整合curator遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05Spring Boot自定義配置屬性源(PropertySource)
這篇文章主要介紹了Spring Boot自定義配置屬性源(PropertySource),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06