3

我有一个 Handsontable 表,里面装满了数据并且已经渲染了

检查单元格后,我找到了几个感兴趣的单元格并想为它们着色 - 有没有使用 Handsontable 代码的好方法?

请注意,这是在加载和渲染表格之后

编辑:

该表使用基本选项呈现:

$container.handsontable({
    startRows: 8,
    startCols: 6,
    rowHeaders: true,
    colHeaders: true,
    minSpareRows: 1,
    minSpareCols: 1,
    //contextMenu: false,
    cells: function (row, col, prop) {
    }
  });

数据通过 Ajax 加载,decode_file.php 读取一个 excel 表并以 JSON 格式返回数据:

  $.ajax({
      url: "decode_file.php",
      type: 'GET',
      success: function (res) {
        handsontable.loadData(res.data);
        console.log('Data loaded');
      },
      error: function (res) {
        console.log("Error : " + res.code);
      }
    });

加载数据后,用户单击“处理”按钮,代码会查找带有文本“Hello world”的单元格。假设代码在单元格第 4 行/第 5 列中找到文本“Hello World”,并将单元格第 4 行/第 5 列的背景颜色更改为红色

4

3 回答 3

1

主页为您的目的提供了一个很好的示例:

http://handsontable.com/demo/renderers.html

只需修改条件(在本例中为上/左角)。

cells: function (row, col, prop) {
  if (row === 0 && col === 0) {
    return {type: {renderer: greenRenderer}};
  }
}

你就完成了。

于 2013-03-04T10:02:27.157 回答
0
  1. 使用 handsontable('getSelected') 获取选定单元格的坐标

  2. 如果选择不为空:

    一个。在所有单元格上循环以使用 handsontable('getCellMeta') 和 meta.renderer 收集每个单元格的渲染器,然后将它们存储在一个数组中(这应该只做一次)

    湾。使用 handsontable("updateSettings") 和 cellProperties.renderer 更新表格:

    • 对于选定坐标内的单元格,应用选定的渲染器并在 2.a. 中更新渲染器的名称。大批

    • 对于所有其他单元格,应用存储的渲染器

于 2013-06-05T16:51:02.183 回答
0

我正在使用一种有点奇怪的方法,它实际上很快并且工作正常:

afterRender: function(){
    render_color(this);
}

ht是handsontable的实例,而render_color:

function render_color(ht){
  for(var i=0;i<ht.countRows();i++){
    for(var p=0;p<ht.countCols();p++){
      cell_color = "#000";
      font_color = "#fff";
      $(ht.getCell(i,p)).css({"color": font_color, "background-color": cell_color})
    }
  }
}
于 2015-09-16T14:20:06.007 回答