0
我有幾個HTML表格,我希望允許用戶將其內容導出到csv。將表格導出爲CSV - 將字符串格式化問題導入到單獨的單元格中
我現在有這個解決方案實現的,它幾乎完美的作品:
function exportTableToCsv($table, filename) {
var $rows = $table.find('tr:has(td,th)'),
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,th');
return $cols.map(function (j, col) {
var $col = $(col),
text = $col.text();
return text.replace('"', '""');
}).get().join(tmpColDelim);
}).get().join(tmpRowDelim)
.split(tmpRowDelim).join(rowDelim)
.split(tmpColDelim).join(colDelim) + ' ',
// Data URI
csvData = 'data:application/csv;charset=utf-8,' + encodeURIComponent(csv);
$(this)
.attr({
'download': filename,
'href': csvData,
'target': '_blank'
});
}
我稱之爲是這樣的:現在
$(".ExportSummary").on('click', function() {
exportTableToCsv.apply(this, [$('#SummaryTable'), 'ExportSummary.csv']);
});
,我的問題是,我無法得到st通過在Excel中將<td>
放在單獨的單元格中來工作。我只是不知道如何將文本放置在分隔的單元格中,因爲它被映射在一起成爲整個字符串內容。
我想要這個JsFiddle提供的所需輸出 - 但這個解決方案不能提供選擇文件名和設置適當的內容類型(application/csv)被瀏覽器識別的能力。
任何幫助表示讚賞。提前致謝!