本来之前写过一个JS导出程序,但是也是网上东拼西凑写出来了,这两天有需求要写个excel导出,然后就出现一堆的问题,就准备记录下来。

原谅我好多东西也是网上百度别人的,但是都汇总了一下,也好给大家看,开始正文:

js导出excel的两种方法:

目录

js导出excel的两种方法:

方法一:

方法二:

以上两种方法在IE浏览器中无法正常使用

若需要支持ie需加以下代码:

再把遇到的问题罗列一下:

问题1:遇到导出excel表格时,银行账户号数字过长,导出的数字串变为计数法形式

问题2:js输出汉字乱码问题


方法一:

/**@tableId: table的Id*@fileName: 生成excel文件* ie浏览器无法导出*/
function tableToExcel(tableID,fileName){var table = document.getElementById(tableID);var excelContent = table.innerHTML;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 += "<head><meta charset='UTF-8'><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head>";excelFile += "<body><table>";excelFile += excelContent;excelFile += "</table></body>";excelFile += "</html>";console.log(excelFile)var link = "data:application/vnd.ms-excel;base64," + base64(excelFile);var a = document.createElement("a");a.download = fileName+".xls";a.href = link;a.click();}function base64 (content) {return window.btoa(unescape(encodeURIComponent(content)));}

方法二:

/**需要引入:jquery.table2excel.js**@$("#tableId"): table的id*/$('#btnExport').on('click', function() {$("#tableId").table2excel({exclude: ".noExl",name: "Excel Document Name",filename: "myFileName",exclude_img: true,exclude_links: true,exclude_inputs: true});});

以上两种方法在IE浏览器中无法正常使用

若需要支持ie需加以下代码:

if(!!window.ActiveXObject || "ActiveXObject" in window) {//判断是否为ie览器var curTbl = document.getElementById("ta");var oXL = new ActiveXObject("Excel.Application");//创建AX对象excelvar oWB = oXL.Workbooks.Add();//获取workbook对象var xlsheet = oWB.Worksheets(1);//激活当前sheetvar sel = document.body.createTextRange();sel.moveToElementText(curTbl);//把表格中的内容移到TextRange中sel.select;//全选TextRange中内容sel.execCommand("Copy");//复制TextRange中内容xlsheet.Paste();//粘贴到活动的EXCEL中oXL.Visible = true;//设置excel可见属性try {var fname = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls");} catch(e) {print("Nested catch caught " + e);} finally {oWB.SaveAs(fname);oWB.Close(savechanges = false);//xls.visible = false;oXL.Quit();oXL = null;//结束excel进程,退出完成//window.setInterval("Cleanup();",1);idTmr = window.setInterval("Cleanup();", 1);}}

再把遇到的问题罗列一下:

问题1:遇到导出excel表格时,银行账户号数字过长,导出的数字串变为计数法形式

解决方案一:

<td style="mso-number-format:'\@';">100821199909091234</td>

增加了  style="mso-number-format:'\@';" 样式后 可以解决

解决方案二:

原来的:excelFile += "<body><table>";

修改为:excelFile += '<body><table style="vnd.ms-excel.numberformat:@">';

style="vnd.ms-excel.numberformat:@"的作用是把数据转换文本格式

问题2:js输出汉字乱码问题

解决方案一:

原来的:excelFile += "<head><meta ><!--[if gte mso 9]>

修改为:excelFile += "<head><meta charset='UTF-8'><!--[if gte mso 9]>

前端js导出excel代码及出现的中文乱码和数字过长等问题的解决办法相关推荐

  1. 前端js导出Excel库(js-export-excel)在React/Vue中使用参考

    目录 前言 目前有个需求是不通过后端,前端直接导出表格数据.从网上找了一个库,发现很好用 ,所以简单记录下,方便日后查阅 GitHub地址: [https://github.com/cuikangji ...

  2. java导出excel文件(标题为中文乱码)

    1 Java导出Excel文件 function excelOut(){   window.location.href="../getFileToExcel/"+taskId; } ...

  3. 前端JS导出Excel表格 可筛选列 table2excel

    git地址 table2excel 本文参考了 (14条消息) table2excel 导出表格有边框,文字居中_狂吃狂吃的瘦子的博客-CSDN博客_table2exc​​​​​​el 边框 效果如图 ...

  4. 浏览器端JS导出EXCEL

    浏览器端JS导出EXCEL FileSaver.js 实现了在本身不支持 HTML5 W3C saveAs() FileSaver 接口的浏览器支持文件保存.FileSaver.js 在客户端保存文件 ...

  5. 纯前端JS导出Word包含图片

    纯前端JS导出Word包含图片 纯前端JS导出Word文档包含图片 Word导出方式 依赖 实现代码 纯前端JS导出Word文档包含图片 在做项目中,遇到一个需求,是将后台返回的属性以及URL图片导出 ...

  6. 四种利用js导出Excel的方法(兼容IE6+、主流浏览器、支持复杂表头和合并单元格)

    因为项目需求变更,最后决定使用做JS导出Excel,网上看了很多的帖子和例子,很多的例子并不能满足需求( 处理复杂表头,兼容主流浏览器,兼容IE等等).所以,自己找了几个比较不错的例子,在其基础上结合 ...

  7. 纯js导出Excel文件(无需引入插件)

    纯js导出Excel文件(无需引入插件) 提示:代码没有来得及整理,大致代码都在这里 let thlist = [[{text: '序号', rowspan: '2'},{text: '姓名', ro ...

  8. 前端自己导出excel表格 不需要调接口(可导出全部的数据)

    前端自己导出excel表格 不需要调接口(可导出全部的数据) 1.下载 npm install -S file-saver xlsx 2.把js放在对应的位置 全部复制(Export2Excel.js ...

  9. php调用python导出excel_如何使用Django导出Excel代码问题

    本篇文章主要介绍了Django 导出 Excel 代码的实例详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 这篇技术贴讲怎样在Django的框架下导出Excel, 最 ...

  10. 通过javascript获取sharepoint数据,使用JS导出Excel

    通过网页将数据导出到Excel是常见需求,使用服务器端导出,开发周期长,部署麻烦.这里推荐一种客户端导出方法. 客户端导出与Sharepoint无关.这里附带使用场景基于SP,因为SP自带的导出功能比 ...

最新文章

  1. 5万字的《Java面试手册》V1.0版本,高清PDF免费获取
  2. wxWidgets与其他工具库的比较(下)
  3. 什么闭包,有什么特性,有什么影响,为什么用闭包
  4. Android Camera 流程学习记录(五)—— Camera.takePicture() 流程解析
  5. EM算法最完整易懂讲解
  6. hive元数据为什么使用Mysql?不使用默认的Derby
  7. 汇编语言学习之安装编译器及书籍选择
  8. 2018-8-10-git-push-错误-hook-declined-
  9. MyEclipse闪退的解决办法
  10. Kryo工具类 序列化和反序列化操作工具类KryoUtils
  11. dfasdfad大发
  12. 计算机英语原文件夹,常用文件夹英文解译
  13. Spring-IoC概念
  14. 记录:前端js实现页面内简繁体切换
  15. 商城后台管理React+Springboot
  16. cover letter and response letter
  17. 利用bmob实现简单的注册和登录
  18. Python制作经典小游戏:推箱子
  19. 车架号查车辆信息-vin查车辆信息api接口
  20. 思科模拟器 --- 路由器综合路由配置

热门文章

  1. 发现一个Java文件.class在线反编译的简单好用的网址
  2. 计算器单片机c语言代码,51单片机c语言计算器代码.doc
  3. 高斯分布matlab程序,生成高斯分布的matlab程序
  4. svn删除文件文件夹(遇到的问题解决)
  5. orcad电路设计软件教程
  6. 音乐网站源码:Spring Boot + MyBatis + Vue 实现的
  7. GB18030字符编码格式和点阵字库
  8. java考试系统_Java实现在线考试系统与设计(学生功能)
  9. 前端例程20211213:网页去色(以灰度形式显示)
  10. 20个经典Android游戏源码下载地址(持续更新~)