js网页下载csv格式的表格
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
table{
border:1px solid #ddd;
border-collapse: collapse;
}
td, th{
border:1px solid #ddd;
padding:3px;
}
</style>
</head>
<body>
<table id="score">
<thead>
<th>Name</th>
<th>Math</th>
<th>Physics</th>
<th>Chemistry</th>
</thead>
<tbody>
<tr>
<td>Melanie</td>
<td>100</td>
<td>80</td>
<td>90</td>
</tr> <tr>
<td>Thomas</td>
<td>99</td>
<td>100</td>
<td>90</td>
</tr> <tr>
<td>Ada中国</td>
<td>100</td>
<td>70</td>
<td>95</td>
</tr>
</tbody>
</table>
<br>
<button id="btn">Download</button>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
var btn = document.getElementById('btn');
btn.onclick = function() {
downloadTable('score', 'score.csv');
}; var columnDelimiter = "\t"; //列分割符
var lineDelimiter = "\n"; //行分割符
function downloadTable(tableId, fileName) {
var scoreTable = document.getElementById(tableId);
var head = scoreTable.tHead;
var ths = head.getElementsByTagName('th');
var trs = scoreTable.tBodies[0].getElementsByTagName('tr'); var result = '';
for(let i=0,l=ths.length; i<l; i++){
result += ths[i].innerHTML + columnDelimiter;
}
result += lineDelimiter; for(let i=0, l=trs.length; i<l; i++){
let tds = trs[i].getElementsByTagName('td');
for(let j=0, l2=tds.length; j<l2; j++){
result += tds[j].innerHTML + columnDelimiter;
}
result += lineDelimiter;
} var blob = new Blob([new Uint8Array(_toUtf16LE(result))], {type: "text/csv;charset=UTF-16;"});
var downloadLink = document.createElement("a");
if ('download' in downloadLink) {
var url = URL.createObjectURL(blob);
downloadLink.href = url;
downloadLink.download = fileName;
downloadLink.hidden = true;
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
}else{
if(navigator.msSaveBlob){ //IE10+
navigator.msSaveBlob(blob, fileName);
}
}
}
function _toUtf16LE(str) {
var charCode, byteArray = [],
len = str.length;
byteArray.push(255, 254); // LE BOM
for (var i = 0; i < len; ++i) {
charCode = str.charCodeAt(i);
// LE Bytes
byteArray.push(charCode & 0xff);
byteArray.push(charCode / 256 >>> 0);
}
return byteArray;
} </script>
</body>
</html>
js网页下载csv格式的表格的更多相关文章
- el-table——可编辑拖拽转换csv格式的表格
<!--可拖拽的表格:表格内容+行参数+按钮名称(对话框标题)--> <template> <div> <el-button size="mini& ...
- thinkphp导出csv格式的表格
<?php /** * Created by PhpStorm. * User: hanks * Date: 2016/4/20 * Time: 13:51 */ namespace Home\ ...
- php生成CSV格式(转)
参考网址: php对csv文件的常用操作集合 http://blog.xhbin.com/archives/748 1,下载CSV格式文档 唯一需要特别注意的是编码. <? include_on ...
- Excel 转 vCard格式、CSV格式
Excel 转vCard格式(常用于Gmail, Yahoo, 163等).CSV格式(常用于Outlook, Foxmail等) 最近公司邮件通讯录需要更新,我就将原来的通讯录给删除了,准备重新导入 ...
- 数据可视化:CSV格式,JSON格式
下载CSV格式数据,进行可视化 csv.reader()创建一个与文件有关联的阅读器(reader)对象,reader处理文件中的第一行数据,并将每一项数据都存储在列表中 head_row = nex ...
- 使用JavaScript下载csv文件
前端可以使用JavaScript在客户端下载包含页面数据的文件,这里以下载CSV格式文件为例,代码如下: function downloadData(data, filename, type) { v ...
- js将json数据以csv格式下载
摘要: 最近有一个非项目的小需求,就是将项目开发分工文件化,方便后期管理维护.但是开发时,分工安排都是以json格式记录的,所以就做了一个将json数据以csv格式下载到本地. 代码: <!DO ...
- JS前端创建CSV或Excel文件并浏览器导出下载
长期以来,在做文件下载功能的时候都是前端通过ajax把需要生成的文件的内容参数传递给后端,后端通过Java语言将文件生成在服务器,然后返回一个文件下载的连接地址url.前端通过location.hre ...
- ABAP->内表数据下载到CSV格式(原创转载请注明)
需求:将alv上面的数据计算到内表中区,然后通过自定义按钮进行下载到csv格式中 附加:现在基本不用csv导出了,但是有些变态需求强行要求,也只好研究出来了,excel与txt导出很简单,那就不多说了 ...
随机推荐
- recv() failed (104: Connection reset by peer) while reading response header from upstream
2017年12月1日10:18:34 情景描述: 浏览器执行了一会儿, 报500错误 运行环境: nginx + php-fpm nginx日志: recv() failed (104: Conn ...
- 1.ROS启动小乌龟
启动turtlesim 在三个不同的终端中分别执行如下三个指令 roscore rosrun turtlesim turtlesim_node rosrun turtlesim turtle_ ...
- Light OJ 1007
求区间欧拉函数平方和... 最后因为longlong 范围爆了WA 了, 0.0 #include<bits/stdc++.h> using namespace std; const in ...
- socket原理-基于UDP的套接字-基于TCP实现远程命令-粘包
- Spring4-@Enable** 注解的实现原理
背景 在前面的工作中使用SpringBoot的时候,我碰到了很多的使用@Enable***注解的地方,使用上也都是加在@Configuration 类注解的类上面,比如: (1)@EnableAuto ...
- python之__call__()
__call__ 在Python中,函数其实是一个对象: >>> f = abs >>> f.__name__ 'abs' >>> f(-123) ...
- jQuery-lazyload参数
1.placeholder placeholder:'图片地址',用图片提前占据将要加载的图片的位置. 2.effect effect:‘fadeIn’ 表示用何种效果载入,eg:show()直接加载 ...
- 初学python之路-day14
一.带参装饰器 # 通常,装饰器为被装饰的函数添加新功能,需要外界的参数 # -- outer参数固定一个,就是func # -- inner参数固定同被装饰的函数,也不能添加新参数 # -- 可以借 ...
- 学习promise
总概括 promise是js异步编程的一种解决方案 我对promise的认识(通俗):给一个承诺promise,如果未来发生的事情(异步操作)是符合满足相应条件,则接受resolve,否则失败reje ...
- 高性能MySQL(第3版) 中文PDF带目录清晰版
下载地址: <高性能MySQL(第3版)>编辑推荐:"只要你不敢以MySQL专家自诩,又岂敢错过这本神书?""一言以蔽之,写得好,编排得好,需要参考时容易到爆 ...