Формула Excel в списке массивов в JavaScript - PullRequest
0 голосов
/ 25 июня 2019

В JavaScript у меня есть 2 объекта, как показано ниже

 /* define formula for each cell */
 var formula = { a: '', b: '', c: '=a+b', d: '=c/50*100' };
 var dataRows = [{ a: 100, b: 50, c: '', d: '' }, { a: 101, b: 51, c: '', d: '' }];

Мне нужно отображать dataRows в цикле, но для значений "c" и "d" следует рассчитывать по формуле.

Любая помощь будет заметна. Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 25 июня 2019

Вы можете просто использовать javascript eval() метод для расчета по формуле.

var formula = { a: '', b: '', c: '=a+b', d: '=c/50*100' };
var dataRows = [{ a: 100, b: 50, c: '', d: '' }, { a: 101, b: 51, c: '', d: '' }];

var dataRows = dataRows.map(function(d){
   var a = d.a;
   var b = d.b;
   var c = eval(formula.c.replace('=',''));
   d.d = eval(formula.d.replace('=',''));
   d.c = c;
   return d;
})

console.log(dataRows);
  • Убедитесь, что вы удалили символ '=' из строки формулы.
  • c значение хранится в отдельной переменной c, так что оно может использоваться fromula.d
0 голосов
/ 25 июня 2019

Использование ng-repeat директива:

Вот краткий пример с вашими данными с использованием таблицы:

<tr ng-repeat="data in dataRows">
 <th>A: {{ data.a }}</td>
 <td>B: {{ data.b }}</td>
 <td>C: {{ data.a + data.b }}</td>
 <td>D: {{ data.c / (50*100) }}</td>
</tr>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...