Blueprism技术问题:如何高亮邮件正文中集合的第一列
解决Blue Prism邮件正文集合第一列高亮问题
没问题,咱们把代码调整一下,就能实现第一列高亮而不是原来的第一行高亮啦!
原代码问题分析
你原来的代码是通过判断rowNumber == 1给整行<tr>加黄色背景,所以只会高亮第一行。要实现第一列高亮,得把逻辑改成在遍历列的时候,给第一列(索引为0)的<td>标签单独加样式。
修改后的完整代码
System.Text.StringBuilder sb = new System.Text.StringBuilder(); if(InData.Rows.Count > 0) { sb.Append("Hi There,<br><br>"); sb.Append("Please find the below mentioned Information. <br><br>"); sb.Append("<table style='border:1px solid black; border-collapse: collapse;'>"); sb.Append("<tr style='border:1px solid black; border-collapse: collapse; padding:2px;'>"); foreach (System.Data.DataColumn dc in InData.Columns) { sb.Append("<th style='border:1px solid black; border-collapse: collapse; padding:2px;'>"); sb.Append(dc.ColumnName); sb.Append("</th>"); } sb.Append("</tr>"); foreach (System.Data.DataRow dr in InData.Rows) { sb.Append("<tr style='border:1px solid black; border-collapse: collapse; padding:2px;'>"); int colIndex = 0; // 新增列索引计数器 foreach (System.Data.DataColumn dc in InData.Columns) { if (colIndex == 0) { // 第一列添加黄色背景样式 sb.Append("<td style='border:1px solid black; border-collapse: collapse; padding:2px; background-color:yellow;'>"); } else { // 其他列保持原有样式 sb.Append("<td style='border:1px solid black; border-collapse: collapse; padding:2px;'>"); } sb.Append(dr[dc.ColumnName].ToString()); sb.Append("</td>"); colIndex++; // 列索引自增 } sb.Append("</tr>"); } sb.Append("</table><br><br>"); sb.Append("Regards,<br>"); sb.Append("Team QueryBot"); } outEmailHtmlTable = sb.ToString();
关键修改点
- 移除了原来的
rowNumber相关逻辑,不需要再针对行做判断 - 新增
colIndex计数器,用来追踪当前遍历的是第几列 - 在遍历列时,判断
colIndex == 0(也就是第一列),给该列的<td>加上background-color:yellow样式 - 顺便修正了原代码里
StringBuilder构造函数的语法错误(多了一个多余的括号)
这样修改后,邮件里的表格就会把第一列所有单元格都高亮成黄色啦!
内容的提问来源于stack exchange,提问作者Eoin2211
相关产品推荐
相关产品推荐

