样式化由SQL + HTML脚本生成的电子邮件中的列条目

时间:2016-03-23 21:41:45

标签: html css sql sql-server

我正在使用SQL + HTML脚本发送包含表mytable列的电子邮件。目前,我将所有列标题集中对齐,并且每个列条目都使用[th][td]重新对齐。如何使Vendor列中的条目保持左对齐,同时保持其他所有内容相同?

这个问题长期困扰着我。我很感激你的帮助。

if(@@ROWCOUNT>0)
        begin
            --drop table #email
            DECLARE @Body2 varchar(max)
            declare @TableHead2 varchar(max)
            declare @TableTail varchar(max)
            Set @TableTail = '</table></body></html>';

  Set @TableHead2 = '<html><head>' +
            '<hr style="height:1px;border:none;color:#333;background-color:#333;">'+
            '<H5 style="color: #000000; font-family:Arial">2: VENDOR LEVEL TOP 5 OUTL $ <font color="blue">INCREMENTS -</font></H5>' +
            '<style>' +

            'td {border: solid black 1px;padding-left:5px;padding-right:5px;padding-top:1px;padding-bottom:1px;font-size:10pt;color:Black;text-align:right;font-family:Arial;} ' +
            'th {border: solid black 1px;padding-left:5px;padding-right:5px;padding-top:1px;padding-bottom:1px;font-size:10pt;color:Black;text-align:center;font-family:Arial;} ' +
            '</style>' +
            '</head>' +
            '<body><table cellpadding=0 cellspacing=0 border=0 width=auto>' +
            '<tr bgcolor=#007336>'+
            '<th><b><font color="white">Vendor_Name</font></b></th>' +
            '<th><b><font color="white">OUTL$ New</font></b></th>' +
            '<th><b><font color="white">OUTL$ Old</font></b></th>' +
            '<th><b><font color="white">OUTL$ Diff</font></b></th>' + 
            '<th><b><font color="white">Analyst_Name</font></b></th></tr>';

            --Select information for the Report-- 
            Select @Body2= (select 
                        Vendor_Name As [TD]
                        ,OUTL_New_$ As [TD]
                        ,OUTL_Old_$ As [TD]
                        ,OUTL_Diff_$ As [TD]
                        ,Analyst_Name As [TD]

            from #mytable
            For XML raw('tr'), Elements)

            Set @Body = @TableHead2 + @Body2 + @TableTail

            EXEC msdb.dbo.sp_send_dbmail 
            @recipients='abc@abc.com',
            @subject = My analysis',
            @body = @Body,
            @body_format = 'HTML'; 
        end

2 个答案:

答案 0 :(得分:0)

在font-family之前:Arial;我会插入&#39; align; left;&#39;然后在$符号后添加一个结束H5标签,然后添加一个新的H5标签。
我在这里看到的是在显示的文本中分配的2个样式属性。使用额外的关闭和打开标签来分别左右H5显示。

右H5也可能需要浮动:右命令甚至添加边距右:1px; (插入正确数量的像素将其放置在您想要的位置)。

我经常使用表格,并且对细节很挑剔,特别是当标题需要与列对齐时。表格单元格不继承css。每个td和th都需要自己的样式命令。我使用风格&#39;班级&#39; (通常是&#39; h5&#39;标签)用于通用位置和颜色,字体,字体大小等,但我仍然经常需要在标题中添加样式标签以使用对齐方式微调其位置,浮动和边距属性。

答案 1 :(得分:0)

您可以使用<colgroup>标记。

示例:

&#13;
&#13;
 <table>
  <colgroup>
    <col span="2" style="background-color:red">
    <col style="background-color:yellow">
  </colgroup>
  <tr>
    <th>ISBN</th>
    <th>Title</th>
    <th>Price</th>
  </tr>
  <tr>
    <td>3476896</td>
    <td>My first HTML</td>
    <td>$53</td>
  </tr>
</table>
&#13;
&#13;
&#13;