handsontable 使用hyperformula 保存时获取有计算公式的行列
时间: 2023-06-01 18:03:36 浏览: 146
如果您想在使用 Handsontable 和 Hyperformula 时保存具有计算公式的行和列,请按照以下步骤操作:
1. 在 Handsontable 中定义表格,并在需要的单元格中添加计算公式。
2. 在 Handsontable 中使用 Hyperformula 插件,以便计算公式得到正确的结果。
3. 在保存表格数据之前,使用 Handsontable 的 `getSourceData` 方法获取包含所有行和列数据的数组。
4. 遍历该数组,并使用 Hyperformula 的 `getCellValue` 方法获取每个单元格的计算结果。
5. 将计算结果添加到一个新的数组中,并使用 Handsontable 的 `setDataAtCell` 方法将该数组中的数据写回到 Handsontable 中。
6. 最后,使用 Handsontable 的 `getData` 方法获取更新后的数据,并将其保存到数据库或其他存储介质中。
以下是一个使用 Handsontable 和 Hyperformula 来保存具有计算公式的行和列的示例代码:
```javascript
// 初始化 Handsontable
var hot = new Handsontable(document.getElementById('example'), {
data: data,
columns: columns,
formulas: true, // 启用公式计算
hyperformula: hyperFormulaInstance, // 使用 Hyperformula
});
// 保存数据
function saveData() {
// 获取所有行和列数据
var sourceData = hot.getSourceData();
// 遍历所有单元格,获取计算结果
var newData = [];
for (var i = 0; i < sourceData.length; i++) {
var row = sourceData[i];
var newRow = [];
for (var j = 0; j < row.length; j++) {
var cell = row[j];
if (cell.formula) {
// 使用 Hyperformula 获取计算结果
var result = hyperFormulaInstance.getCellValue(cell.formula);
newRow.push(result);
} else {
newRow.push(cell);
}
}
newData.push(newRow);
}
// 将更新后的数据写回 Handsontable 中
hot.setDataAtCell(newData);
// 获取更新后的数据并保存到数据库或其他存储介质中
var data = hot.getData();
// ...
}
```