在客户端将HTML表格导出为CSV文件

4

我在网页上有一个HTML表格。我需要一种导出功能,使用户在单击按钮时可以选择打开或将其保存到本地计算机。 由于我已经准备好了表格格式的数据,因此需要使用浏览器能力在客户端自身上读取并导出它,而不需要任何插件(如jQuery等)。真正赞赏纯JS。

我网页上的HTML表格:

<table id="incidents">
<tr>
<td>data1</td>
<td>data1</td>
<td>data1</td>
</tr>
<tr>
<td>data2</td>
<td>data2</td>
<td>data2</td>
</tr>
<tr>
<td>data3</td>
<td>data3</td>
<td>data3</td>
</tr>
</table>

我需要将这个表格导出到客户机上的CSV或Excel表中,提供打开或保存选项。


不要指望这会发生,浏览器无法在客户端上写入或读取文件。 - Ben
1
我认为你现在可以使用HTML 5文件API编写文件。 - meleyal
你能贴一下表格标记的片段吗? - meleyal
我曾经看到有人用HTML表格中的CSV数据创建了一个数据URL。我再也找不到了,但这是可能的。一些URL是http://somenotestoself.wordpress.com/2010/06/17/how-to-create-a-csv-file-in-javascript-and-get-the-save-as-dialog/ 和 https://dev59.com/22855IYBdhLWcg3wuGwM。 - Gerben
可能是与 使用 jQuery 和 html 导出到 CSV 相似的问题。 - Dave Jarvis
1个回答

9
使用JavaScript将CSV文件的内容生成为字符串(我假设您不是要求Stack Overflow为您编写此代码),然后将其编码为Base64,并生成带有MIME类型text/csvdata:URI。将浏览器重定向到该URI,它应该会为用户触发下载对话框。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接