我想通过 UNIX shell 读取 csv 并创建动态 HTML 表。 csv 中的行数和列数每个月可能会有所不同,因此需要一个动态表。我在此处显示的代码创建了表,但表标题未显示为粗体。由于 CSS 不适用于电子邮件,因此我无法实现第一个子属性。
我在此处显示的代码创建了表格,但表格标题未显示为粗体。由于 CSS 不适用于电子邮件,因此我无法实现第一个子属性。
awk 'BEGIN{
FS=","
#print "MIME-Version: 1.0"
#print "Content-Type: text/html"
#print "Content-Disposition: inline"
print "<HTML>""<HEAD>"
print "<STYLE>"
print "TR:first-child {font-weight: bold;background-color: grey;}"
print "</STYLE>""</HEAD>"
print "<TABLE border="1">"
}
{
printf "<TR>"
for(i=1;i<=NF;i++)
printf "<TD>%s</TD>", $i
print "</TR>"
}
END{
print "</TABLE></BODY></HTML>"
}
' /home/test.csv > /home/test_file.html
电子邮件中的预期表格输出:
Job name | Date | Status
-----------------------------
Job 1 | 08/08/19 | Success
Job 2 | 08/09/19 | Failure
Job 3 | 08/10/19 | Success
最佳答案
默认情况下,HTML 会识别表格头 TH
并加粗它们。这也适用于电子邮件。您想要调整代码以对标题行使用 TH
,对后续行使用 TD
。请参阅下面的示例;
# Top part of your code goes here to handle the headers...
{
printf "<TR>"
for(i=1;i<=NF;i++)
printf "<TH>%s</TH>", $i
print "</TR>"
}
# Rest of your code goes here, including subsequent rows using <TD>
如果您希望设置标题样式,可以使用 TH
选择器,如下所示;
<style>
TH {
background-color:gray;
/* Other styles */
}
</style>
关于html - 从 Unix shell 在电子邮件中嵌入动态 HTML 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57469814/