Talend-格式化HTML表以通过电子邮件发送

时间:2019-07-07 14:09:14

标签: java html css talend

我有一个CSV表格,该表格由HTML转换并使用Talend通过电子邮件发送。要将CSV生成为HTML,我正在使用JavaRow:

componentcontext.MsgCode = "<br><br><style>table, td {  word-wrap: keep-all; border: 1px solid black;    border-collapse: collapse;}table, th { border: 1px solid black;}th, td {padding: 5px;},th {text-align: right;},th {background-color: #f2f2f2;},td{font-family: arial; font-size: 10pt;}</style> <table style=width:150px><tr> <th>column_A</th> <th>column_B</th> <th>column_C</th> <th>column_D</th>";

context.TableRow = "</td><td>"+input_row.column_A +"</td> <td>"+input_row.column_B +"</td> <td>"+input_row.column_C +"</td> <td>"+input_row.column_D+"</td> </tr>" + context.TableRow;

context.MsgCode = context.MsgCode + context.TableRow+ "</table>";

通过此代码,我得到了我想要的颜色和结构,但是列的大小非常糟糕。例如,我得到以下输出:

enter image description here

为了使表格具有正确的列大小,我必须在代码上添加些什么?我已经将style = width更改为100%,但是没有任何好结果。我想要以下输出:

enter image description here

有人可以帮助我吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

在我的工作中,我们像这样解决了它:(与Outlook配合得很好,尽管不确定其他工具)。

整个内容包裹在一个这样的表中:

<tr>
    <td width="660">
        <div style="width:100%; margin:0 auto; text-align: center;">
            <font color="#1E4191" style="font-size:30px;">
                <strong>Data Load Report</strong>
            </font>
        </div>
        <br><br>
 <table><tr bgcolor="#F3E2A9"><td bgcolor="#F3E2A9"><font color="#1E4191" >Hello</font></td>

以此类推

</font></td></tr></table>
            <br>
            <font color="#1E4191" face="Arial">
            Kind Regards, <br>
            <strong>Talend Team</strong>
             </font>
        </td>
    </tr>
</table>

是的,我们需要为每个单元格定义字体类型和颜色:(

这在Outlook中非常有效,如果表格不适合预定义的660px宽度,则它会分成多行。