Как я могу преобразовать HTML-таблицу в файл Excel с формулами, которые я указал? - PullRequest
0 голосов
/ 19 января 2019

У меня есть таблица, сгенерированная из данных в базе данных Firebase.Я хочу экспортировать это в файл Excel при нажатии кнопки.Но я также хочу иметь возможность каким-то образом стилизовать Excel, добавив формулы, чтобы он мог сложить строку «Отправленная сумма» и дать итоговое значение внизу строки.

Я пытался посмотретьв сети и не увенчались успехом.

Я думаю, что самым простым способом было бы импортировать уже созданный мною Excel с формулами и установить переменные в моей HTML-таблице в заголовки, которые у меня уже есть в моемexcel.

Код JavaScript

    var database = firebase.database().ref().child('transactions');
    database.once('value', function(snapshot){
        if(snapshot.exists()){
            var content = '';

            snapshot.forEach(function(data){
                var AmountSent = data.val().AmountSent;
                var CustomerName = data.val().CustomerName;
                var DateEffected = data.val().DateEffected;
                var Successful = data.val().Successful;
                var TimeEffected= data.val().TimeEffected;


            content += '<tr>';
            content += '<td>' + AmountSent + '</td>'; //column1
            content += '<td>' + CustomerName + '</td>';//column2

            content += '<td>' + DateEffected + '</td>'; //column1
            content += '<td>' + Successful + '</td>'; //column1
            content += '<td>' + TimeEffected + '</td>';//column2

            content += '</tr>';

            });

            $('#ex-table').append(content);
        }
    });

HTML

<body>
        <table style="width:100%" id="ex-table">
        <tr id="tr">
            <th>Amount Sent:</th>
            <th>Customer Name:</th> 
            <th>Date Effected:</th>
            <th>Successful</th>
            <th>Time Effected</th>
    </table> 

</body>

CSS

    #ex-table {
  font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
  border-collapse: collapse;
  width: 100%;
}

#ex-table td, #ex-table th {
  border: 1px solid #ddd;
  padding: 8px;
}

#ex-table tr:nth-child(even){background-color: #f2f2f2;}

#ex-table tr:hover {background-color: #ddd;}

#ex-table th {
  padding-top: 12px;
  padding-bottom: 12px;
  text-align: left;
  background-color: #4CAF50;
  color: white;
}

1 Ответ

0 голосов
/ 19 января 2019

Я бы посмотрел на SheetJS . Я использовал их для многочисленных приложений, и они обрабатывают несколько форматов. Они также могут начинаться с таблиц HTML для преобразования: https://github.com/SheetJS/js-xlsx#html-table-input.

Обновлено

Что касается формулы, вы можете сослаться на этот ответ о том, как встраивать формулу. Обратите внимание на эту строку в его ответе, где вы можете явно задать формулу:

var cell = {f: 'A2+A3'};

В основном формулы можно задать, введя ключ для f и значение с определением функции. Большая часть работы будет включать в себя итерацию результатов после подачи таблицы в библиотеку и корректировку значений ячеек с помощью формул по мере необходимости. Документация для работы с формулами: здесь .

...