如何在 HTML 表中设置标题样式

如何在 HTML 表中设置标题样式

我的文件包含以下逗号分隔的数据,其中第一行是标题

文件数据:

Name,Rollno,Course,Language,Subject,Awarded
Vilas,1,MBA,Account,MB,1
Ajay,2,MMM,Subject Matter,SU,2
Fedrick,33,MMS,Mct,SC,3

部分工作代码:

echo "<!DOCTYPE html>" >> n.html
echo "<html>" >> n.html
echo "<head>" >> n.html
echo "<style>" >> n.html
echo "table, th, td {" >> n.html
echo "border: 1px solid black;" >> n.html
echo "border-collapse: collapse;" >> n.html
echo "}" >> n.html
echo "</style>" >> n.html
echo "</head>" >> n.html
echo "<body>" >> n.html

awk -F, 'BEGIN{print "<table>"} {print "<tr>";for(i=1;i<=NF;i++)print "<td>" $i"</td>";print "</tr>"} END{print "</table>"}'  A.txt >> n.html

echo "</body>" >> n.html
echo "</html>" >> n.html

代码输出:

上面代码的输出

需要如下输出的标题

输出

答案1

尝试

cat <<EOF > n.html
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th {background-color: yellow} 
</style>
</head>
<body>
EOF

awk -F, 'BEGIN{print "<table>";} 
    NR==1 { cell="th" ; }
   { print "<tr>";
     for(i=1;i<=NF;i++) printf "<%s>%s</%s>",cell,$i,cell ; 
     print "</tr>" ; cell="td" } 
   END{print "</table>"}' a.txt >> n.html

echo "</body>" >> n.html
echo "</html>" >> n.html

在哪里

  • echo在此处的文档中折叠了多个。
  • 为了便于阅读,我部署了一个多行awk程序。
  • 我用printf
  • NR==1 { cell="th" ; }将设置cellth对于第一行(可以在子句cell="th"中设置,每次打印后都会覆盖)BEGINcell
  • th代表(?)表头,旨在执行您想要的操作(尽管您可以在您喜欢的任何单元格中使用它)

答案2

数据以逗号分隔,,但awk默认使用空格作为输入文本中字段的分隔符。

请尝试

awk -F, 'BEGIN{print "<table>"} {print "<tr>";for(i=1;i<=NF;i++)print "<td>" $i"</td>";print "</tr>"} END{print "</table>"}'  File.txt

-F参数给出数据输入的分隔符( 中的列分隔符File.txt)。

相关内容