mst*_*fky 7 javascript jsp colors cell heatmap
我有一个从数据库动态创建的表。
for (int m = 0; m < table.size(); m++) {
out.print("<tr>");
for (int k = 0; k < table.get(0).length; k++)
{ out.print("<td width='10'>");
out.print(table.get(m)[k]);
out.println("</td>");
}
out.println("</tr>");
}
Run Code Online (Sandbox Code Playgroud)
我想根据每个单元格的值对其进行着色,我的表格的输出是;
你将需要这样的东西:
let table = '<table>';
for (let i = 0; i < 4; ++i) {
table += '<tr>';
for(let k = 0; k < 10; ++k) {
const value = Math.random();
const h = 240 - value * 240;
table += '<td style="background: hsl(' + h + ', 100%, 50%)">' + value.toFixed(2) + '</td>';
}
table += '</tr>';
}
document.write(table);Run Code Online (Sandbox Code Playgroud)
table {
border: 1px solid #000;
border-collapse: collapse;
font-family: Sans-Serif;
color: #000;
}
td {
border: 2px solid #000;
padding: .5rem;
}Run Code Online (Sandbox Code Playgroud)
理想情况下,style在后端添加属性,以便发送给客户端的页面已经具有颜色。如果由于某种原因您无法做到这一点,那么只需检查客户端中的单元格,读取它们的值并为它们添加适当的背景颜色即可。
使用 HSL 的其他组件,您可以生成不同的颜色模式。例如,单色调刻度,两端为黑色和白色,中间为您选择的颜色,在本例中为蓝色:
let table = '<table>';
for (let i = 0; i < 4; ++i) {
table += '<tr>';
for(let k = 0; k < 10; ++k) {
const value = Math.random();
const l = value * 100;
const textColor = l < 35 ? '#FFF' : '#000';
table += '<td style="background: hsl(200, 100%, ' + l + '%); color: ' + textColor + '">' + value.toFixed(2) + '</td>';
}
table += '</tr>';
}
document.write(table);Run Code Online (Sandbox Code Playgroud)
table {
border: 1px solid #000;
border-collapse: collapse;
font-family: Sans-Serif;
color: #000;
}
td {
border: 2px solid #000;
padding: .5rem;
}Run Code Online (Sandbox Code Playgroud)