我有一个从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;
}
答案 0 :(得分:1)
我来看看SheetJS。我已经将它们用于许多应用程序,它们可以处理多种格式。它们也可以从HTML表开始进行转换:https://github.com/SheetJS/js-xlsx#html-table-input。
已更新
关于公式,您可以参考this answer来了解如何嵌入公式。请注意他的答案中的这一行,您可以在其中明确设置公式:
var cell = {f: 'A2+A3'};
基本公式可以通过输入f
的键和带有函数定义的值来设置。将表输入库后,大部分工作将涉及遍历结果,并根据需要使用公式调整单元格值。有关公式的文档为here。