it-day/springboot

StringBuilder를 이용하여 JAVA HTML 그리기

별지킴Lee 2024. 5. 30. 10:15
StringBuilder brchAutoMail = new StringBuilder();
brchAutoMail.append("<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<style type=\"text/css\">\n")
        .append(".tg  {border-collapse:collapse;border-spacing:0;}\n")
        .append(".tg td{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;overflow:hidden;padding:10px 5px;word-break:normal; white-space: nowrap;}\n")
        .append(".tg th{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal; white-space: nowrap;}\n")
        .append(".tg .tg-07c9{background-color:#ffffc7;border-color:inherit;text-align:center;vertical-align:middle}\n")
        .append(".tg .tg-mfhl{background-color:#ffffc7;border-color:inherit;text-align:center;vertical-align:top}\n")
        .append(".tg .tg-text{background-color:#ffffff;border-color:inherit;text-align:center;vertical-align:top}\n")
        .append("</style>\n</head>\n<body bgcolor=\"#FFFFFF\" leftmargin=\"0\" topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\">\n")
        .append("<p>p태그 입니다..</p>\n")
        .append("<table class=\"tg\">\n<colgroup>\n");
for (int i = 0; i < 17; i++) {
    brchAutoMail.append("<col style=\"width: auto\">\n");
}
brchAutoMail.append("</colgroup>\n<thead>\n<tr>\n")
        .append("<td class=\"tg-07c9\" rowspan=\"2\">No</td>\n")
        .append("<td class=\"tg-07c9\" rowspan=\"2\">고객명</td>\n")
        .append("<td class=\"tg-07c9\" rowspan=\"2\">업체명</td>\n")
        .append("<td class=\"tg-07c9\" rowspan=\"2\">사업자번호</td>\n")
        .append("<td class=\"tg-07c9\" rowspan=\"2\">전화번호</td>\n")
        .append("<td class=\"tg-07c9\" rowspan=\"2\">이메일</td>\n")
        .append("<td class=\"tg-07c9\" rowspan=\"2\">주소</td>\n")
        .append("<td class=\"tg-07c9\" rowspan=\"2\">품목</td>\n")
        .append("<td class=\"tg-07c9\" rowspan=\"2\">세부품목</td>\n")
        .append("<td class=\"tg-07c9\" rowspan=\"2\">기타1</td>\n")
        .append("<td class=\"tg-07c9\" rowspan=\"2\">기타2</td>\n")
        .append("<td class=\"tg-mfhl\" colspan=\"6\">기타3</td>\n")
        .append("</tr>\n<tr>\n")
        .append("<td class=\"tg-mfhl\">S</td>\n")
        .append("<td class=\"tg-mfhl\">A</td>\n")
        .append("<td class=\"tg-mfhl\">B</td>\n")
        .append("<td class=\"tg-mfhl\">C</td>\n")
        .append("<td class=\"tg-mfhl\">D</td>\n")
        .append("<td class=\"tg-mfhl\">E</td>\n")
        .append("</tr>\n</thead>\n<tbody>\n");

int index = 1;
for (testDto dto : 반복 할 List) {
    brchAutoMail.append("<tr>\n")
            .append("<td class=\"tg-text\">").append(index++).append("</td>\n")
            .append("<td class=\"tg-text\">").append(dto.get필드명()).append("</td>\n")
            .append("<td class=\"tg-text\">").append(dto.get필드명()).append("</td>\n")
            .append("<td class=\"tg-text\">").append(dto.get필드명()).append("</td>\n")
            .append("<td class=\"tg-text\">").append(dto.get필드명()).append("</td>\n")
            .append("<td class=\"tg-text\">").append(dto.get필드명()).append("</td>\n")
            .append("<td class=\"tg-text\">").append(dto.get필드명()).append("</td>\n")
            .append("<td class=\"tg-text\">").append(dto.get필드명()).append("</td>\n")
            .append("<td class=\"tg-text\">").append(dto.get필드명()).append("</td>\n")
            .append("<td class=\"tg-text\">").append(dto.get필드명()).append("</td>\n")
            .append("<td class=\"tg-text\">").append(dto.get필드명()).append("</td>\n");
    brchAutoMail.append("<td class=\"tg-text\">").append("비교값".equals(dto.get필드명()) ? dto.get필드명() : "-").append("</td>\n")
            .append("<td class=\"tg-text\">").append("비교값".equals(dto.get필드명()) ? dto.get필드명() : "-").append("</td>\n")
            .append("<td class=\"tg-text\">").append("비교값".equals(dto.get필드명()) ? dto.get필드명() : "-").append("</td>\n")
            .append("<td class=\"tg-text\">").append("비교값".equals(dto.get필드명()) ? dto.get필드명() : "-").append("</td>\n")
            .append("<td class=\"tg-text\">").append("비교값".equals(dto.get필드명()) ? dto.get필드명() : "-").append("</td>\n")
            .append("<td class=\"tg-text\">").append("비교값".equals(dto.get필드명()) ? dto.get필드명() : "-").append("</td>\n")
            .append("</tr>\n");
}
brchAutoMail.append("</tbody>\n</table>\n</body>\n</html>");

 

 

언젠간 써먹으려고 기록 해둠

 

p태그를 추가하여 설명하고

 

아래 for문을 이용하여 테이블의 row 동적 추가!!!