设置表的innerHTML的条件

时间:2015-01-11 16:53:24

标签: javascript excel

我有一个表,这个表是使用这个HTML文件从excel文件导入的:

<!DOCTYPE html>
<html>
<head>
    <title>XLSX to HTML</title>
    <link rel="stylesheet" href="css/style.css" type="text/css"/>
    <script src='http://alasql.org/console/xlsx.core.min.js'></script>
    <script src='http://alasql.org/console/alasql.min.js'></script>
</head>
<body>
    <script>
        alasql('select * into html("#here",{headers:true}) \
          from xlsx("data/data.xlsx",\
                    {headers:true})');
    </script>
    <div id="here"></div>
</body>
</html>

我的Excel文件包含4列和23行。第4列的值等于从第3列减去第2列 现在我想为第4列设置条件。如果值大于0(零),则将与该td相关的特定框颜色设置为绿色,如果值等于0,则将其设置为黄色,如果小于0(负值),则将颜色设置为红色。
如果你帮忙解决这个问题,我将不胜感激。我只知道HTML + CSS基础知识。

1 个答案:

答案 0 :(得分:2)

您可以自行修改代码并生成HTML表,而无需使用Alasql的INTO HTML()函数。 请参阅以下示例:

// First: read data from XLSX file into "res" variable
alasql('select * from xlsx("data/data.xlsx", {headers:true})',function(res){
    // Start to create HTML text 
    var s = '<table><thead><th>Col1<th>Col2<tbody>'; // Generate table header
    for(var i=0;i<res.len;i++) {
        s += '<tr>';
        s += '<td>'+res[i].Col1;    // Cell for first column
        s += '<td ';
        // Now add colored cell for second column
        if(res[i].Col2>0) s += 'style="background-color:yellow"';
        else s += 'style="background-color:red"';
        s += '>'+res[i].Col2;
    }
    s += '</table>';
});
document.getElementById('res').innerHTML = s;

请参阅下面的工作代码段,其中包含着色表格单元格的概念。

免责声明:我是Alasql的作者。

&#13;
&#13;
   var res = [{a:1,b:1},{a:2,b:-1}];
   var s = '<table><thead><th>Col1<th>Col2<tbody>';
        for(var i=0;i<res.length;i++) {
            s += '<tr>';
            s += '<td>'+res[i].a;
            s += '<td ';
            if(res[i].b>0) s += 'style="background-color:yellow"';
            else s += 'style="background-color:red"';
            s += '>'+res[i].b;
        }
        s += '</table>';

    document.getElementById('res').innerHTML = s;
&#13;
<div id="res"></div>
&#13;
&#13;
&#13;