700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > js把数据导出成excel的中文乱码问题解决

js把数据导出成excel的中文乱码问题解决

时间:2020-01-21 12:39:46

相关推荐

js把数据导出成excel的中文乱码问题解决

由于项目中有这个需求,网上的方法各种各样,但都没解决问题,几经调试终于成功,分享下源码仅供参考:

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="/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>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。