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