<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ExportTablesToExcel</title>
<script src="js/echarts.js"></script>
<script src="js/jquery.js"></script>
</head>
<style>
#tabDiv1,#tabDiv2,#tabDiv3{border:1px solid pink;margin:10px auto;width:100%; }
button{width:100%;}
</style>
<body>
<div id="tablesDiv">
<table id="tabDiv1">
<tr>
<td>ID</td>
<td>姓名</td>
<td>年龄</td>
</tr>
<tr>
<td>0001</td>
<td>张三</td>
<td>24</td>
</tr>
</table>
<table id="tabDiv2">
<tr>
<td>ID</td>
<td>姓名</td>
<td>年龄</td>
</tr>
<tr>
<td>0002</td>
<td>李四</td>
<td>24</td>
</tr>
</table>
<table id="tabDiv3">
<tr>
<td>ID</td>
<td>姓名</td>
<td>年龄</td>
</tr>
<tr>
<td>0003</td>
<td>王五</td>
<td>24</td>
</tr>
</table>
<button onclick="exp();">export to excel...</button>
</div>
</body>
<script>
function exp(){
tablesToExcel(['tabDiv1','tabDiv2','tabDiv3'], ['sheet1','sheet2','sheet3'], "testExport.xls", "Excel");
}
//导出excel包含多个sheet
//tables:tableId的数组;wsbames:sheet的名字数组;wbname:工作簿名字;appname:Excel
function tablesToExcel(tables, wsnames, wbname, appname){
var uri = 'data:application/vnd.ms-excel;base64,'
, tmplWorkbookXML = '<?xml version="1.0"?><?mso-application progid="Excel.Sheet"?><Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">'
+ '<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"><Author>Axel Richter</Author><Created>{created}</Created></DocumentProperties>'
+ '<Styles>'
+ '<Style ss:ID="Currency"><NumberFormat ss:Format="Currency"></NumberFormat></Style>'
+ '<Style ss:ID="Date"><NumberFormat ss:Format="Medium Date"></NumberFormat></Style>'
+ '</Styles>'
+ '{worksheets}</Workbook>'
, tmplWorksheetXML = '<Worksheet ss:Name="{nameWS}"><Table>{rows}</Table></Worksheet>'
, tmplCellXML = '<Cell{attributeStyleID}{attributeFormula}><Data ss:Type="{nameType}">{data}</Data></Cell>'
, base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) }
, format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) }
var ctx = "";
var workbookXML = "";
var worksheetsXML = "";
var rowsXML = "";
for (var i = 0; i < tables.length; i++) {
if (!tables[i].nodeType) tables[i] = document.getElementById(tables[i]);
// 控制要导出的行数
for (var j = 0; j < tables[i].rows.length; j++) {
rowsXML += '<Row>';
for (var k = 0; k < tables[i].rows[j].cells.length; k++) {
var dataType = tables[i].rows[j].cells[k].getAttribute("data-type");
var dataStyle = tables[i].rows[j].cells[k].getAttribute("data-style");
var dataValue = tables[i].rows[j].cells[k].getAttribute("data-value");
dataValue = (dataValue)?dataValue:tables[i].rows[j].cells[k].innerHTML;
var dataFormula = tables[i].rows[j].cells[k].getAttribute("data-formula");
dataFormula = (dataFormula)?dataFormula:(appname=='Calc' && dataType=='DateTime')?dataValue:null;
ctx = { attributeStyleID: (dataStyle=='Currency' || dataStyle=='Date')?' ss:StyleID="'+dataStyle+'"':''
, nameType: (dataType=='Number' || dataType=='DateTime' || dataType=='Boolean' || dataType=='Error')?dataType:'String'
, data: (dataFormula)?'':dataValue
, attributeFormula: (dataFormula)?' ss:Formula="'+dataFormula+'"':''
};
rowsXML += format(tmplCellXML, ctx);
}
rowsXML += '</Row>'
}
ctx = {rows: rowsXML, nameWS: wsnames[i] || 'Sheet' + i};
worksheetsXML += format(tmplWorksheetXML, ctx);
rowsXML = "";
}
ctx = {created: (new Date()).getTime(), worksheets: worksheetsXML};
workbookXML = format(tmplWorkbookXML, ctx);
// 查看后台的打印输出
//console.log(workbookXML);
var link = document.createElement("A");
link.href = uri + base64(workbookXML);
link.download = wbname || 'Workbook.xls';
link.target = '_blank';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
</script>
</html>
分享到:
相关推荐
js导出table 可自定义导出文件名,可导出css样式,也是我在项目中用到的,希望可以帮助到大家,里面有注释讲解
3. **Excel导出**:JavaScript无法直接创建Excel文件,但可以借助库如`xlsx`或` SheetJS`。它们提供API来构造工作簿对象,并将其转换为二进制流。对于中文,需设置正确的字符编码,如`utf8`。 4. **PNG导出**:将...
在JavaScript开发中,有时我们需要将HTML表格的数据导出为Excel文件,以便用户可以方便地存储和处理数据。本文将深入探讨如何使用JavaScript、jQuery和HTML来实现这一功能,特别是通过JavaScript操作HTML表格来生成...
总的来说,纯JavaScript导出HTML表格到Excel涉及到的主要知识点包括: 1. DOM遍历:获取表格数据。 2. Blob对象:创建二进制文件。 3. URL.createObjectURL:创建可下载的URL。 4. 文件下载:模拟文件下载操作(非...
js导出table表格数据(包括excel,xml,json,csv等格式)
该插件可以将Html的表格导出成为 JSON, XML, CSV, TSV, ...在项目上遇到pdf导出中文乱码问题,经过一天的研究修改了一些js代码解决了pdf导出中文乱码问题,随便融入了一个html打印功能的js,有需要的可以下载来看看。
用于bootstrap数据表格的导出插件,在引入bootstrap其他主要js和css的前提下,再将bootstrap-table-export.js和tableExport.js引入。包里有两个版本的
在网页开发中,有时我们...提供的`js浏览器导出Excel`资源应该包含了一个示例,你可以参考这个示例代码来理解并应用到自己的项目中。这种方法简单易用,适用于各种网页表格导出需求,极大地提高了前端开发的灵活性。
这是一个前端通过js导出页面的table生成并下载excel的demo
加压后可以直接运行,主要包含1、table_export.html,内容:tableExport.js导出table成Excel (不支持IE) 2、new_file.html 内容:无插件、原生js导出table成Excel(支持IE\谷歌等主流浏览器)
通过以上技术,开发者可以在前端页面上实现将table表格数据导出为Excel的功能,提供用户友好的数据交互体验。在实际项目中,结合具体的业务需求和现有技术栈,选择合适的方法和库,可以高效地完成这一任务。
javascript代码可以将HTML的table表格转换成excel表格。var table = document.getElementById("table")[removed]; export2Excel(table, '导出.xls');
总的来说,`jquery.table2excel.js`提供了一个简洁的解决方案,让Web开发者能够快速为用户提供表格数据导出到Excel的功能。通过合理的配置和适当的HTML、CSS、JavaScript代码,你可以创建出满足用户需求的导出体验。...
javascri实现将table中数据保存到excel中
除了基本的导出功能,TableExport还可以与其他前端库结合使用,例如结合jQuery或Vue.js进行更复杂的数据操作。此外,还可以利用FileSaver.js库实现下载功能,让导出的数据直接保存到用户的本地文件系统。 ### 注意...
为了实现这个功能,我们可以利用“bootstrap导出table插件”。 这个插件,正如其名,是为了增强Bootstrap表格的功能,使其能够方便地将表格数据导出为各种格式,如CSV、Excel、PDF等。这在需要将网页上的数据保存到...
总的来说,FileSaver.js和tableExport.js是前端开发中非常实用的工具,它们可以帮助我们实现从网页表格直接导出Excel的功能。理解并掌握这两个库的使用方法,对于提升用户体验,优化Web应用功能具有重要的价值。在...
要设置不导出的列,我们需要在JavaScript代码中进行配置。这通常涉及到遍历表格的列,根据业务需求决定哪些列需要被导出,哪些不需要。例如,我们可以创建一个数组,列出需要排除的列索引,然后在转换函数中排除这些...
bootstraptable 可以直接导出的插件,导出内容自动居中处理 https://blog.csdn.net/qq_39087348/article/details/112970600