利用js生成读取页面数据并导出为excel
2016-09-30 14:24
671 查看
//核心,js部分
*/ var navs = new Vue({ el: '#navs', data: { navs: [] }, ready: function () { this.$http.get('demoPC.json').then(function (response) { this.navs = response.data; }); } }); Vue.component('simple-grid', { template: '#grid-template', props: ['persons', 'columns', 'searchKey'] }); var vm = new Vue({ el: '#lists', data: { searchKey: '', columns: [{ name: '姓名' }, { name: '年龄' }, { name: '性别' }], persons: [] }, ready: function () { this.$http.get('table.json').then(function (response) { this.persons = response.data.aa; }); } }) // 页面json数据生成excel表 $(function () { $('#JsonToExcel').click(function () { var data = { "title": [], "data": [] }; var th = document.querySelectorAll('#lists table>thead>tr>th'); for (var i = 0; i < th.length; i++) { data.title.push(th[i].innerHTML); }; var tdrs = document.querySelectorAll('#lists table>tbody>tr'); for (var i = 0; i < tdrs.length; i++) { var ele = []; for (var j = 2; j <=4; j++) { ele.push(tdrs[i].childNodes[j].innerHTML); } data.data.push(ele); } if (data == '') { return; } JSONToExcelConvertor(data.data, "辅昊--电力", data.title); }); }); function JSONToExcelConvertor(JSONData, FileName, ShowLabel) { //先转化json var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData; var excel = '<table>'; //生成表头 var row = "<tr>"; for (var i = 0; i < ShowLabel.length; i++) { row += "<td>" + ShowLabel[i] + '</td>'; } excel += row + "</tr>"; //循环生成表身 for (var i = 0; i < arrData.length; i++) { var row = "<tr>"; for (var j in arrData[i]) { // var name = arrData[i][index].name === "." ? "" : arrData[i][index].name; var td = arrData[i][j]; row += '<td>' + td + '</td>'; } excel += row + "</tr>"; } excel += "</table>"; console.log(excel); var excelFile = "<html xmlns:o='urn:schemas-microsoft-com:office:office' " + "xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'>"; excelFile += '<meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8">'; excelFile += '<meta http-equiv="content-type" content="application/vnd.ms-excel'; excelFile += '; charset=UTF-8">'; excelFile += "<head>"; excelFile += "<!--[if gte mso 9]>"; excelFile += "<xml>"; excelFile += "<x:ExcelWorkbook>"; excelFile += "<x:ExcelWorksheets>"; excelFile += "<x:ExcelWorksheet>"; excelFile += "<x:Name>"; excelFile += "sheet"; excelFile += "</x:Name>"; excelFile += "<x:WorksheetOptions>"; excelFile += "<x:DisplayGridlines/>"; excelFile += "</x:WorksheetOptions>"; excelFile += "</x:ExcelWorksheet>"; excelFile += "</x:ExcelWorksheets>"; excelFile += "</x:ExcelWorkbook>"; excelFile += "</xml>"; excelFile += "<![endif]-->"; excelFile += "</head>"; excelFile += "<body>"; excelFile += excel; excelFile += "</body>"; excelFile += "</html>"; var uri = 'data:application/vnd.ms-excel;charset=utf-8,' + encodeURIComponent(excelFile); var link = document.createElement("a"); link.href = uri; link.style = "visibility:hidden"; link.download = FileName + ".xls"; document.body.appendChild(link); link.click(); document.body.removeChild(link);}
//html <!DOCTYPE HTML> <html> <head> <title>Adminstratior Platform</title> <meta content="text/html;charset=utf-8" http-equiv="content-type"> <link rel="stylesheet" href="../css/bootstrap.min.css"/> <link rel="stylesheet" href="../css/mui.min.css"/> <link rel="stylesheet" href="../css/app1.css"/> <link rel="stylesheet" href="../css/iconfont.css"/> <script src="../js/jquery-1.12.2.min.js" type="text/javascript"></script> <script src="../js/mui.min.js" type="text/javascript"></script> </head> <body> <header id="adminstrator" class="mui-bar mui-bar-nav"> <div id="login" class="mui-btn mui-btn-primary">登陆</div> <h1 class="mui-title"></h1> </header> <div class="mui-content"> <div id="navs" class="col-sm-4"> <ul class="mui-table-view mui-grid-view mui-grid-9 "> <li v-for="item in navs" id="{{item.id}}" class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3"> <a href="javascript:;"> <span class="iconfont icon-{{item.imageUri.replace(/./,'')}}"></span> <div class="mui-media-body" v-text='item.name'></div> </a> </li> </ul> </div> <div id="lists" class="col-sm-8"> <div class="form-group"> <label>Search</label> <input type="text" class="search-input" v-model="searchKey"/> </div> <simple-grid :persons="persons" :columns="columns" :search-key="searchKey"> </simple-grid> <div id="JsonToExcel" class="mui-btn mui-btn-primary mui-pull-right" >JsonToExcel</div> </div> <template id="grid-template"> <table> <thead> <tr> <th v-for="i in columns"> {{ i.name}} </th> </tr> </thead> <tbody> <tr v-for="i in persons | filterBy searchKey"> <td v-for="j in columns"> {{i[j.name]}} </td> </tr> </tbody> </table> </template> </div> </body> <script> $('#login').bind('click', function () { alert('success'); }); $('#navs').delegate('li', 'click', function (e) { e.stopPropagation(); $(this).find('span').toggleClass("chosen"); vm.persons.push({ "姓名": "Tracy", "年龄": "22", "性别": "Female" }); }); </script> <script src="../js/vue.js" type="text/javascript"></script><script src="../js/vue-resource.min.js" type="text/javascript"></script><script src="../js/demo-PC.js" type="text/javascript"></script></html>
相关文章推荐
- Html Table用JS导出excel格式问题 导出EXCEL后单元格里的000412341234会变成412341234 7-14 会变成 2018-7-14(7月14) 自定义格式 web利用table表格生成excel格式问题 js导出excel增加表头、mso-number-format定义数据格式 数字输出格式转换 mso-number-format:"\@"
- 利用PHPExcel读取Excel的数据和导出数据到Excel
- 关于“Asp.net 中后台CS读取数据库数据生成数组传递给前台页面JS使用”
- jsp利用POI生成Excel并在页面中导出的示例
- net控件中数据导到Excel的格式 首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式: 1) 文本
- JS 在页面上直接将json数据导出到excel,支持chrome,edge,IE10+,IE9,IE8,Safari,Firefox
- 导出mysql数据,利用pandas生成excel文档,并发送邮件
- js导出excel页面数据
- js导出页面表格数据到Excel
- 利用JS-XLSX插件 用JS读取excel数据
- jsp利用POI直接生成Excel并在页面中导出
- poi页面读取excel,生成相应的excel导出
- JS 在页面上直接将json数据导出到excel,支持chrome,edge,IE10+,IE9,IE8,Safari,Firefox
- 利用PHPExcel读取Excel的数据和导出数据到Excel
- jsp利用POI生成Excel并在页面中导出的示例
- 利用PHPExcel读取Excel的数据和导出数据到Excel
- JS-利用ajax获取json数据,并传入页面生成动态tab
- Web页面的数据导出excel时的格式问题
- 将ASP.NET页面内的数据导出到Excel 或 Word中 (转)
- jsp页面显示数据导出到excel表中