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导出很简单,那就不多说了 ...
随机推荐
- [jquery]为jQuery.ajax添加onprogress事件
原理: 给XMLHttpRequest对象的upload属性绑定onprogress方法监听上传过程 var xhr = new XMLHttpRequest(); xhr.upload.onpro ...
- python读写csv文件
文章链接:https://www.cnblogs.com/cloud-ken/p/8432999.html Python读写csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 前言 逗 ...
- 技术的热门度曲线:GHC
全球最大的 IT 咨询公司高德纳(Gartner),有一个"技术热门度曲线"模型(Gartner Hype Cycle). 该模型认为,一门技术的发展要经历五个阶段. (1)启 ...
- vue中引入js,然后new js里的方法
阿里云Web播放器Web端使用SDK说明:https://help.aliyun.com/document_detail/51991.html?spm=5176.11065259.1996646101 ...
- CSS margin属性取值
margin表示一个元素的外边距.取值为正值时,表示相对于正常流离邻近元素更远,而取负值时,使其更近 但是,设置margin后,四个方向的表现形式不同 自身发生移动:top.left margin-t ...
- Confluence 6 使用 Apache 和 mod_proxy 的基本配置
在这些示例中,我们使用下面的信息: http://www.example.com/confluence - 你计划使用的 URL http://example:8090/ - Confluence 当 ...
- Confluence 6 使用电子邮件可见
Confluence 提供了 3 个电子邮件策略,这些策略 Confluence 管理员可以通过管理员控制台(Administration Console)进行配置: 公开(Public):电子邮件地 ...
- Confluence 6 Microsoft SQL Server 设置准备
在开始前,请检查: 请查看 Supported Platforms 页面来获得 Confluence 系统支持的 SQL Server 数据库版本.你需要在安装 Confluence 之前升级你的 O ...
- 高并发编程基础(java.util.concurrent包常见类基础)
JDK5中添加了新的java.util.concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能.因为同步容器将所有对容器状态的访问都串行化了,这样保证了线程的安全性,所以这种方法 ...
- 20165314 2016-2017-2 《Java程序设计》第7周学习总结
20165314 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 MySQL数据库管理系统 连接MySQL数据库 JDBC 批处理 代码托管