我试图将表中的一些数据导出到csv文件而不必使用插件,所以我找到了这段代码:
jQuery("#exportButton").click(function (e) {
window.open('data:application/csv;charset=utf-8,' + jQuery('#myTable').html());
e.preventDefault();
});
此代码有效,但它也保存了html标签。 那么如何在不使用文件中的html标签的情况下以类似的方式从表中导出数据?
答案 0 :(得分:1)
就提取文字而言,您可以使用.text()
代替.html()
。
但是以特定格式提取文本会有点棘手。
答案 1 :(得分:1)
你的问题让我感兴趣。所以我尝试了它的可能性: https://jsfiddle.net/ouvaztan/
HTML:
<table id="customers">
<tbody><tr>
<th>Company</th>
<th>Contact</th>
<th>Country</th>
</tr>
<tr>
<td>Alfreds Futterkiste</td>
<td>Maria Anders</td>
<td>Germany</td>
</tr>
<tr>
<td>Centro comercial Moctezuma</td>
<td>Francisco Chang</td>
<td>Mexico</td>
</tr>
<tr>
<td>Ernst Handel</td>
<td>Roland Mendel</td>
<td>Austria</td>
</tr>
<tr>
<td>Island Trading</td>
<td>Helen Bennett</td>
<td>UK</td>
</tr>
<tr>
<td>Laughing Bacchus Winecellars</td>
<td>Yoshi Tannamuri</td>
<td>Canada</td>
</tr>
<tr>
<td>Magazzini Alimentari Riuniti</td>
<td>Giovanni Rovelli</td>
<td>Italy</td>
</tr>
</tbody></table>
JS:
$(function() {
var link = document.createElement('a');
var data = ($("#customers").text().trim().replace(/[\n]+/g, ";").replace(/ /g, "").replace(/;;;/g, ";\n") + ";").replace(/\n/g, "\r\n");
link.download = "test.csv";
link.href = 'data:application/csv;base64,' + btoa(data);
link.click();
});
有一个限制: 所有行和列都必须包含文本和colspan / rowspan是不可能的