我有这个Save as CSV
按钮,将我的表保存到一个完全正常工作的CSV
文件中。但是如何自动将此CSV
文件放入带有密码的.rar
文件中?基本上,我希望我的CSV
文件在保存/导出数据时位于.rar
内。如果可能,如何在.rar
文件中添加密码?
HTML:
<a class="export"> // Export button
<i class="fa fa-file-text-o">
</i>
Save as CSV
</a> <br>
CSV Format: <br><br>
<div id="dvData"> // Data to CSV/Txt file
<table class="table table-bordered table-striped table-condensed sortable" id="table2" style="width: 50%;">
<tr>
<th>Employee ID</th>
<th>Time</th>
<th>Action</th>
</tr>
<tr>
<td>Data 1</td>
<td>Data 2</td>
<td>Data 3</td>
</tr>
</table>
</div>
JavaScript的:
$(document).ready(function() {
function exportTableToCSV($table, filename) {
var $rows = $table.find('tr:has(td):visible'),
tmpColDelim = String.fromCharCode(11),
tmpRowDelim = String.fromCharCode(0),
colDelim = ' ',
rowDelim = '\r\n',
csv = '' + $rows.map(function(i, row) {
var $row = $(row),
$cols = $row.find('td');
return $cols.map(function(j, col) {
var $col = $(col),
text = $col.text();
return text.replace(/"/g, '');
}).get().join(tmpColDelim);
}).get().join(tmpRowDelim)
.split(tmpRowDelim).join(rowDelim)
.split(tmpColDelim).join(colDelim) + '',
csvData = 'data:application/csv;charset=utf-8,' + encodeURIComponent(csv);
$(this)
.attr({
'download': filename,
'href': csvData,
'target': '_blank'
});
}
$(".export").on('click', function(event) {
exportTableToCSV.apply(this, [$('#dvData > table'), 'dtr.csv']);
});
});
答案 0 :(得分:1)
我知道JavaScript中rar
的唯一实现是https://github.com/43081j/rar.js/,似乎不支持加密。如果你需要一种可移植的压缩格式,你可以使用ZIP代替https://gildas-lormeau.github.io/zip.js/和https://stuk.github.io/jszip/的两个实现(后者似乎更简单一个)但是,据我所知,两者都做不支持加密。
我只是压缩文件并加密它们,例如:AES http://point-at-infinity.org/jsaes/(代码是GPL3,但这不是JavaScript的问题,特别是如果你只是使用它)并按顺序。 AES en / decryption程序(当然有源代码!)在https://www.aescrypt.com/download/,但在例如:Java(很多例子可以在线找到)中这样做很简单
很抱歉,但这是今天的最新技术,它可能会在明天发生变化,或者在我写作时它甚至可能已经改变了 - 我在这方面有点慢。