基于值的Excel/VB/HTML表格单元格格式

x33g5p2x  于 2023-04-07  发布在  其他
关注(0)|答案(1)|浏览(116)

我试图格式化的背景颜色的td嵌入在我的VB代码的基础上关闭的细胞从Excel的值。我的代码的目的是发送一封电子邮件与HTML表格,我希望能够突出显示的HTML表格中的细胞是某些值。
这是我在VB中创建的表的基本视图,减去bgcolor代码。

"<table style=font-size:11pt;font-family:Arial; width=auto>" & _
            "<tr >" & _
                "<td>Title</td>" & _
                "<td align=right>" & FormatPercent(("I16"), 0) & "</td> " & _
                "<td align=right>" & FormatPercent(("J16"), 0) & "</td> " & _
            "</tr>" & _
"</table>"

我想做的是格式化a,给予它的bgcolor要么是绿色〉= 98%,要么是蓝色〉=95%,要么是红色〈98%。我有大约24个不同的单元格,我想要一个动态的颜色,它会根据单元格的内容自动改变。
我以前手工做过,为每个单元格创建一个字符串;然而,我觉得这样做效率极低,可能有更好方法。
我不确定是否有一种方法可以将Excel值插入到我的表格中,并保持单元格的格式,并使用Excel中的格式条件来确定颜色。我已经尝试查找这个,但无法找到任何定义。
如果有一种方法可以做到这样的事情:

If <td> value >= 0.98 then
    color=green
elseif <td> value > 0.95 then
    color = blue
else
    color = red
End if

任何建议将不胜感激。

  • 编辑1:没有意识到当我键入“< td>“,它没有出现.它代替了单词“细胞”.
fafcakar

fafcakar1#

你不能在HTML中做到这一点,但是你可以使用JavaScript来动态修改你的HTML DOM:

let cells = document.getElementsByTagName('td'); // Get cells

Array.from(cells).forEach(cell => { // For each cell
  let value = Number.parseFloat(cell.innerHTML); // Parse the value of the cell
  if (value >= 0.98) { // Check the value
    cell.style.backgroundColor="green"; // Modify the cell's CSS
  } else if (value >= 0.9) {
    cell.style.backgroundColor="blue";
  } else cell.style.backgroundColor="red";
});
<table style=font-size:11pt;font-family:Arial; width=auto>
            <tbody>
            <tr id="row">
                <td>0.95</td>
                <td>0.99</td>
                <td>0.67</td>
                <td>0.48</td>
                <td>0.93</td>
            </tr>
            </tbody>
</table>

相关问题