javascript - 如何使用我指定的公式将 html 表格转换为 Excel 文件?

标签 javascript html html-table

我有一个根据 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;
}

最佳答案

我会看一下 SheetJS 。我已将它们用于许多应用程序,并且它们可以处理多种格式。他们还可以从 HTML 表开始进行转换:https://github.com/SheetJS/js-xlsx#html-table-input .

已更新

公式可以引用this answer至于如何嵌入公式。请注意他的答案中的这一行,您可以在其中明确设置公式:

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

基本上可以通过输入 f 的键和带有函数定义的值来设置公式。大多数工作将涉及在将表输入库后迭代结果,并根据需要使用公式调整单元格值。处理公式的文档是 here .

关于javascript - 如何使用我指定的公式将 html 表格转换为 Excel 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54269190/

相关文章:

具有不同宽度边框的html表格

javascript - 使用 webcomponentsjs 在 safari 和 firefox 中应用所有 webcomponent 样式

javascript - 在 JavaScript 中使用内存位置作为哈希键

html - <table> inside a <div> in a <div>

javascript - jQuery 多重选择器问题

html - 使用CSS水平对齐不同高度和未知宽度的元素

mysql - 在用 mysql 填充的表上格式化日期和时间

javascript - Aurelia 绑定(bind)在 repeat.for 不工作

javascript - 在客户端重新渲染组件时如何从服务器端渲染访问 Prop ?

javascript - 将 jQuery 添加到 Adob​​e Brackets HTML 编辑器中