js把数据导出成excel的中文乱码问题解决
2017-07-23 17:26
856 查看
由于项目中有这个需求,网上的方法各种各样,但都没解决问题,几经调试终于成功,分享下源码仅供参考:
download.js
test.html
download.js
$(document).ready(function() { "use strict"; var mo = { init: function() { $('.download').click(function() { var data = $('#txt').val(); if (data === '') { return; } mo.JSONToCSVConvertor(data, true); }); }, JSONToCSVConvertor: function(JSONData, ShowLabel) { var arrData = typeof JSONData !== 'object' ? JSON.parse(JSONData) : JSONData; var CSV = ''; if (ShowLabel) { var row = ""; for (var index in arrData[0]) { row += index + ','; } row = row.slice(0, -1); CSV += row + '\r\n'; } for (var i = 0; i < arrData.length; i++) { var row = ""; for (var index in arrData[i]) { var arrValue = arrData[i][index] == null ? "" : '="' + arrData[i][index] + '"'; row += arrValue + ','; } row.slice(0, row.length - 1); CSV += row + '\r\n'; } if (CSV == '') { growl.error("Invalid data"); return; } var fileName = "Result"; if (mo.msieversion()) { var IEwindow = window.open(); IEwindow.document.write('sep=,\r\n' + CSV); IEwindow.document.close(); IEwindow.document.execCommand('SaveAs', true, fileName + ".csv"); IEwindow.close(); } else { //var uri = 'data:application/csv;charset=utf-8,' + escape(CSV); var uri = 'data:text/csv;charset=utf-8,\uFEFF' + encodeURI(CSV); var link = document.createElement("a"); link.href = uri; link.style = "visibility:hidden"; link.download = fileName + ".csv"; document.body.appendChild(link); link.click(); document.body.removeChild(link); } }, msieversion: function() { var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) // If Internet Explorer, return version number { return true; } else { // If another browser, return false; } return false; }, main: function() { mo.init(); } }; mo.main(); });
test.html
<!DOCTYPE html> <html> <title>download csv</title> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> <script type="text/javascript" src="download.js"></script> </head> <body> <div align="center"> <h3><u>输入JSON数据</u></h3> <div class='mydiv'> <textarea id="txt" class='txtarea' rows="15" cols="100"> [ {"Vehicle":"第一个","Date":"6月30日","Location":"山东"}, {"Vehicle":"第二个","Date":"6月30日","Location":"上海"}, {"Vehicle":"第三个","Date":"6月30日","Location":"北京"}, {"Vehicle":"第四个","Date":"6月30日","Location":"深圳"} ] </textarea> </div> <br/> <button class="download">下载CSV</button> </div> </body> </html>
相关文章推荐
- PHP从数据库导出数据到excel,无插件(解决中文以及法语乱码问题)
- php将mysql数据表(含中文数据)导出生成excel表,快速生成且解决中文乱码问题。
- sl3中的DataGrid中的数据导出到Excel中 使用csv格式 解决中文是乱码的问题
- jsp将table导出成excel+用js将table导出excel,中文乱码问题解决方案+action层导出excel
- 解决Excel数据导入sqlite中的中文乱码问题
- .net与js数据交换中文乱码问题解决
- 解决Ext Grid导出Excel在JSP等环境中文乱码问题(支持Windows和Aix)
- jsp将table导出成excel+用js将table导出excel,中文乱码问题解决方案+action层导出excel
- 设计能够导出所有记录到excel的分页(使用AspNetPager)页面,并解决excel文件名中文乱码问题
- 解决Excel数据导入sqlite中的中文乱码问题
- 文件、导出-在Mac系统下Excel转csv文件中文乱码问题解决-by小雨
- 解决Excel数据导入sqlite中的中文乱码问题
- phpexcel导出excel中文乱码问题解决
- ASP.NET 导出到EXCEL LINQ适用 自定义列 自定义数据源 解决中文乱码问题 解决方案
- Mysql中文乱码以及导出为sql语句和Excel问题解决
- appfuse 中DisplayTag 导出EXCEL,PDF格式中文乱码问题的解决
- PHP 从数据库Mysql中读取数据生成excel(解决乱码问题,解决中文变问号问题)
- 将GridView中的数据导出到Excel中下载并且解决乱码的问题
- 解决Excel数据导入sqlite中的中文乱码问题
- 解决Excel数据导入sqlite中的中文乱码问题