我想发送一个饼图在电子邮件中的值,我在3个变量(通过=10失败=2,拒绝=0)在PowerShell

n53p2ov0  于 2023-05-17  发布在  Shell
关注(0)|答案(1)|浏览(113)

这是我的基本代码。到目前为止,我显示我的值在html表格格式如下。

$pass=20
    $fail=5
    $reject=2
    $Body = -join("<table border=2>
     <tr><th>pass<td>$pass</td></th></tr>
       <tr><th>failFailed<td>$fail</td></th></tr>
    </table>", $myEmail)
    $SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom,$EmailTo,$Subject,$Body)

我添加了一个粗略的图像我怎么需要。期待相似:

db2dz4w8

db2dz4w81#

基于How to make a pie chart in CSShttps://www.w3schools.com/css//css3_gradients_conic.asp,这里有一个适合您的解决方案。
首先,计算出皮克特的各个部分需要以多少度开始和结束。

$pass=20
$fail=5
$reject=2
$total=$pass + $fail + $reject
$deg=360 / $total
$degpass = $deg * $pass
$degfail = $deg * $fail + $degpass

现在,注入变量的饼图的HTML代码

<div style='width:100px; height:100px; border-radius:50%; background-image: conic-gradient(green ${degpass}deg, red ${degpass}deg, red ${degfail}deg, black ${degfail}deg);'></div>

当然你也可以在它旁边加上文字。

<p>Pass: $pass</p>
<p>Fail: $fail</p>
<p>Reject: $reject</p>

下面是示例中的结果:

<div style='width:100px; height:100px; border-radius:50%; background-image: conic-gradient(green 267deg, red 267deg, red 334deg, black 334deg);'></div>

<p>Pass: 20</p>
<p>Fail: 5</p>
<p>Reject: 2</p>

任何进一步的风格改进只是更多的HTML/CSS更改,而不是PS特定的。

相关问题