使用数组作为 handsontable 的列

Using arrays as columns with handsontable

我正在使用 handsontable 来显示应用程序的数据。我想将数组用作 columns,我似乎无法通过文档弄明白。我想最好的方法是使用我的数组的数组,但我无法将它们拼凑在一起。

这是目前的代码:

var data = [
  ["Sale Month", "Usage", "Address", "Tax Assessment", "Loan Amount", "Initial Equity", "Lien Start Date", "Lien Term", "Loan Type", "Square Feet", "Year Build", "Acres"
      , "Beds", "Baths", "Lotsort"]
];

var container = document.getElementById('listview');
var hot = new Handsontable(container, {
  data: data,
  rowHeaders: true,
  colHeaders: true
});

每一列我都有一组数组header。例如,saleMonth 数组看起来像 ['01/18, 03/16, 01/12'] 等等。我想将每个数组的索引用于相应列中的条目。

这是当前输出:

Screenshot

如果我能更清楚一点,请告诉我。

谢谢!

编辑:添加了 JSFiddle

我稍微更改了你的数据结构:将 data 更改为 headers (columns) 的列表,并将你的值数组移动到映射中 (values) 其中键是列名,值是原始数组

通过这种方式,您可以详细说明数据,以适当的格式创建 rows 的数组

var saleMonth = ['01/18', '03/20']
var usageArray = ['Residential', 'Commercial']

var values = {
  'Sale Month': saleMonth,
  'Usage': usageArray
}

var columns = 
  ["Sale Month", "Usage", "Address", "Tax Assessment", "Loan Amount", "Initial Equity", "Lien Start Date", "Lien Term", "Loan Type", "Square Feet", "Year Build", "Acres"      , "Beds", "Baths", "Lotsort"]

;

var rows=[];
var numOfRow
for ( numOfRow = 0; numOfRow < saleMonth.length; numOfRow++ ) {
    rows.push(columns.map((e) => {
    if (e in values) {return values[e][numOfRow]}
    return e;
    }));
}

var container = document.getElementById('listview');
var hot = new Handsontable(container, {
  data: rows,
  rowHeaders: true,
  colHeaders: true
});

您还可以在 Hansontable 配置中设置 object colHeaders: columns 以获取列标题而不是字母