精华内容
下载资源
问答
  • 以下是我 导出数据到Excel表格 的方法: 一 .首先需要引用JS脚本: 直接复制全部脚本, 写一个js文件里面,引用就行了 1 /* eslint-disable */ 2 let idTmr; 3 const getExplorer = () => { 4 let...

    工作中,导出数据到表格的功能很多吧,

    以下是我  导出数据到Excel表格  的方法:

    一 .首先需要引用JS脚本:   直接复制全部脚本, 写到一个js文件里面,引用就行了

      1 /* eslint-disable */
      2 let idTmr;
      3 const getExplorer = () => {
      4     let explorer = window.navigator.userAgent;
      5     //ie
      6     if (explorer.indexOf("MSIE") >= 0) {
      7         return 'ie';
      8     }
      9     //firefox
     10 
     11     else if (explorer.indexOf("Firefox") >= 0) {
     12         return 'Firefox';
     13     }
     14     //Chrome
     15     else if (explorer.indexOf("Chrome") >= 0) {
     16         return 'Chrome';
     17     }
     18     //Opera
     19     else if (explorer.indexOf("Opera") >= 0) {
     20         return 'Opera';
     21     }
     22     //Safari
     23     else if (explorer.indexOf("Safari") >= 0) {
     24         return 'Safari';
     25     }
     26 }
     27 // 判断浏览器是否为IE
     28 const exportToExcel = (data, name) => {
     29 
     30     // 判断是否为IE
     31     if (getExplorer() == 'ie') {
     32         tableToIE(data, name)
     33     } else {
     34         tableToNotIE(data, name)
     35     }
     36 }
     37 
     38 const Cleanup = () => {
     39     window.clearInterval(idTmr);
     40 }
     41 
     42 // ie浏览器下执行
     43 const tableToIE = (data, name) => {
     44     let curTbl = data;
     45     let oXL = new ActiveXObject("Excel.Application");
     46 
     47     //创建AX对象excel
     48     let oWB = oXL.Workbooks.Add();
     49     //获取workbook对象
     50     let xlsheet = oWB.Worksheets(1);
     51     //激活当前sheet
     52     let sel = document.body.createTextRange();
     53     sel.moveToElementText(curTbl);
     54     //把表格中的内容移到TextRange中
     55     sel.select;
     56     //全选TextRange中内容
     57     sel.execCommand("Copy");
     58     //复制TextRange中内容
     59     xlsheet.Paste();
     60     //粘贴到活动的EXCEL中
     61 
     62     oXL.Visible = true;
     63     //设置excel可见属性
     64 
     65     try {
     66         let fname = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls");
     67     } catch (e) {
     68         print("Nested catch caught " + e);
     69     } finally {
     70         oWB.SaveAs(fname);
     71 
     72         oWB.Close(savechanges = false);
     73         //xls.visible = false;
     74         oXL.Quit();
     75         oXL = null;
     76         // 结束excel进程,退出完成
     77         window.setInterval("Cleanup();", 1);
     78         idTmr = window.setInterval("Cleanup();", 1);
     79     }
     80 }
     81 
     82 // 非ie浏览器下执行
     83 const tableToNotIE = (function () {
     84     // 编码要用utf-8不然默认gbk会出现中文乱码
     85     let uri = 'data:application/vnd.ms-excel;base64,',
     86         template = '<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"><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><body><table>{table}</table></body></html>',
     87         base64 = function (s) {
     88             return window.btoa(unescape(encodeURIComponent(s)));
     89 
     90         },
     91 
     92         format = (s, c) => {
     93             return s.replace(/{(\w+)}/g,
     94                 (m, p) => {
     95                     return c[p];
     96                 })
     97         }
     98     return (table, name) => {
     99         let ctx = {
    100             worksheet: name,
    101             table
    102         }
    103 
    104         //创建下载
    105         let link = document.createElement('a');
    106         link.setAttribute('href', uri + base64(format(template, ctx)));
    107 
    108         link.setAttribute('download', name);
    109 
    110 
    111         // window.location.href = uri + base64(format(template, ctx))
    112         link.click();
    113     }
    114 })()
    115 
    116 // 导出函数
    117 const export2Excel = (theadData, tbodyData, dataname) => {
    118 
    119     let re = /http/ // 字符串中包含http,则默认为图片地址
    120     let th_len = theadData.length // 表头的长度
    121     let tb_len = tbodyData.length // 记录条数
    122     let width = 200// 设置图片大小
    123     let height = 100
    124 
    125     // 添加表头信息
    126     let thead = '<thead><tr>'
    127     for (let i = 0; i < th_len; i++) {
    128         thead += '<th>' + theadData[i] + '</th>'
    129     }
    130     thead += '</tr></thead>'
    131 
    132     // 添加每一行数据
    133     let tbody = '<tbody>'
    134     for (let i = 0; i < tb_len; i++) {
    135         tbody += '<tr>'
    136         let row = tbodyData[i] // 获取每一行数据
    137 
    138         //有图片的话  ,就把下面的if打开
    139         for (let key in row) {
    140             //if (re.test(row[key])) { // 如果为图片,则需要加div包住图片
    141             //    // 
    142             //    tbody += '<td style="width:' + width + 'px; height:' + height + 'px; text-align: center; vertical-align: middle"><div style="display:inline"><img src=\'' + row[key] + '\' ' + ' ' + 'width=' + '\"' + width + '\"' + ' ' + 'height=' + '\"' + height + '\"' + '></div></td>'
    143             //} else {
    144                 tbody += '<td style="text-align:center">' + row[key] + '</td>'
    145             //}
    146         }
    147 
    148         tbody += '</tr>'
    149     }
    150     tbody += '</tbody>'
    151 
    152     let table = thead + tbody
    153 
    154     // 导出表格
    155     exportToExcel(table, "C:\Users\Mloong\Desktop")
    156 }
    JS脚本包

     

    二 . js代码:  post请求一个ExproExcel的方法,返回的是要导出的数据。

         ret返回的数据格式为 数组的对象, tHeader是Excel表格的头部,

     1   $.post('ExprotExcel', null, function (ret) {
     2 
     3         let tHeader = [
     4             '申请编号',
     5             '体现人',
     6             '缴税金额',
     7             '金额',
     8             '总金额',
     9             '审核状态',
    10             '提现方式',
    11             '创建时间',
    12         ]
    13         let tbody = ret;  //Excel表数据,json返回,为数组对象的结构
    14         export2Excel(tHeader, tbody);
    15     });
    JS代码

     

      PS: ret 返回的格式是这样的:

     1 let tbody = [
     2         {
     3             name: '玫瑰花',
     4             color: '红色',
     5             pic: 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=2801998497,4036145562&fm=27&gp=0.jpg'
     6         },
     7         {
     8             name: '菊花',
     9             color: '黄色',
    10             pic: 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=1506844670,1837003941&fm=200&gp=0.jpg'
    11         },
    12         {
    13             name: '牵牛花',
    14             color: '紫色',
    15             pic: 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=3056120770,1115785765&fm=27&gp=0.jpg'
    16         },
    17         {
    18             name: '梅花',
    19             color: '白色',
    20             pic: 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2700343322,3431874915&fm=27&gp=0.jpg'
    21         },
    22         {
    23             name: '桃花花',
    24             color: '粉色',
    25             pic: 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=602076004,4209938077&fm=27&gp=0.jpg'
    26         }
    27     ]
    28 --------------------- 
    29 作者:little小 
    30 来源:CSDN 
    31 原文:https://blog.csdn.net/xiaoxiaojie12321/article/details/81780900 
    32 版权声明:本文为博主原创文章,转载请附上博文链接!
    View Code

     

    三: 这种格式的数据  ,那么我就可以直接到后台返回了:

      就是 List集合类型的对象 ,ToArray 一下就行了

     1 public ActionResult ExprotExcel()
     2         {
     3             var lists = (from a in es_EGDSuperRecordService.Instance.LoadEntities()
     4                          join b in es_AgentsService.Instance.LoadEntities() on a.sendid equals b.AgentsID
     5                          orderby a.createtime descending
     6                          select new
     7                          {
     8 
     9                              id = a.id,
    10                              AgentsName = b.AgentsName,
    11                              feenumber = a.feenumber,
    12                              number = a.number,
    13                              allnumber = a.allnumber,
    14                              flag = a.flag == 0 ? "待审核" : a.flag==1?"审核通过":"审核不通过",
    15                              sendaddress = a.sendaddress,
    16                              createtime = a.createtime,
    17                          }).ToList();
    18 
    19             return Json(lists.ToArray(),JsonRequestBehavior.AllowGet);
    20         }
    View Code

     

     

    脚本包里面的  一些东西,看得懂 是可以直接改的。  

     

     

    转载于:https://www.cnblogs.com/liuzheng0612/p/11114276.html

    展开全文
  • JS导出页面数据到excel

    2018-10-10 10:38:18
    这是一个JS工具类程序,可以将页面数据导出到excel表格,不使用后台代码。纯前端代码实现。简单实用
  • 使用nodejs将mysql数据库中的数据导出excel格式,并附带mysql连接池及mysql模块的封装,以及三百万的mysql测试数据,内容详细。
  • NULL 博文链接:https://bear999.iteye.com/blog/692594
  • 使用js导出带样式的excel表格模板,有demo
  • C#导出数据到Excel表格

    千次阅读 2019-05-07 17:14:58
    1、为了保证导出数据和想导出数据保持一致,我们要在导出之前要根据查询的条件在控制器查询一次(多条件查询),再进行导出。 2、获取下拉框、文本框的val值 3、然后判断这些下拉框是否为空或者undefined,...

    JS部分:
    1、为了保证导出的数据和想导出的数据保持一致,我们要在导出之前要根据查询的条件在控制器查询一次(多条件查询),再进行导出。
    2、获取到下拉框、文本框的val值
    3、然后判断这些下拉框是否为空或者undefined,如果是就让它等于0,文本框是否为undefined,如果是就让它等于空,步骤和多条件查询一样。
    4、先给用户一个提示,用户确定了再进行导出。
    window.open是在浏览器窗口打开,ExportToExcel为控制器的方法,用拼接字符串的方式把上面三个变量(+号后面的)作为参数传到控制器
    在这里插入图片描述

    控制器部分:
    1、到控制器写控制器请求的方法ExportToExcel,因为要根据条件来筛选数据,所以要把JS里三个参数(=号前面的)传过来,我这里前两个是ID,第三个是字符串类型。
    2、把我需要的员工表、部门表、职位表连起来,这里我根据员工编号进行倒序排序 ,倒序排序的好处就是会把我最新添加的数据放到最前面。
    3、然后查询出我们需要导出的数据,注意,查询那边的id一定要和控制器查询的名称保持一致,这样查询出来的结果页面才能接收到。

    EmployeeVo是我创的实体类,里面继承了一个员工表,写了两个员工表没有的字段,也就是我把我需要用到的字段和成了一个表,后面处理数据的话,就可以把查询出来的数据放到new EmployeeVo里,直接处理new EmployeeVo的对象就可以了,就不用重新查询。
    在这里插入图片描述
    条件筛选,Lambd表达式,运算符=>,左边是参数,右边是表达式或语句,!string.IsNullOrEmpty()判断字符串是否为空
    在这里插入图片描述

    查询完后,接下来就是导出了,因为要导出到Excel表格,所以得先有一张表吧
    1、 创建Excel工作簿,这里用到NPOI里的HSSFWorkbook
    2、 创建工作表,用CreateSheet在excelBook里创建一张工作表,空号里的是表的名字
    3、 设置表头行,调用CreateRow创建行的方法,让它索引为0,就可以设置表头行了
    在这里插入图片描述
    4、 为Excel表格添加数据
    把创建行写到for循环里,根据数据的条数创建行数,因为第一行是表头行,所以要从第二行开始加(i+1)。
    在这里插入图片描述

    5、 为Excel文件命名,获取当前的时间,拼接字符串,命名格式为:员工信息 + 年月日时分秒毫秒 + 后缀.xls。

    6、 转化为内存流,让Excel文件以文件流的形式输出到页面

    7、 将Excel文件写入内存流

    8、输出之前调用Seek(偏移量,游标位置)移动文件读取指针到指定的位置
    Seek(0,Seek.begin) 第一个参数表示相对位置,第二个参数表示参数位置
    读取指针类似我们输入时的鼠标光标,随着不断输入内容光标也随着不断移动,偏移量为0也就是在文件流一开始的位置,这个位置靠Seek来确定

    9、返回,application/vnd.ms-excel (后缀xls的MTME文件类型)
    在这里插入图片描述

    展开全文
  • 简单实用网页表格数据导出Excel电子表格文件jQuery插件
  • layui数据表格导出Excel插件 博客地址: https://www.cnblogs.com/YunRuiSoftWare/p/13346396.html
  • 导出数据到Excel表格

    2019-05-06 16:25:31
    在学习MVC过程中,我们可以在vs中写一个方法,就可以导出我们需要的数据,即导出数据到Excel表格,这样子就节省我们很多的时间了,不用因为需要哪些数据而一条一条的写入Excel表格了。导出数据到Excel表格也可以利用...
    开发工具与关键技术:VS+导出数据
    作者: 李伙
    撰写时间: 2019年5月3日
    

    在学习MVC过程中,我们可以在vs中写一个方法,就可以导出我们需要的数据,即导出数据到Excel表格,这样子就节省我们很多的时间了,不用因为需要哪些数据而一条一条的写入Excel表格了。导出数据到Excel表格也可以利用条件筛选来筛选出我们需要的数据。下面为一个例子,先看js部分的代码:
    在这里插入图片描述
    如图所示:先要获取查询条件,再判断获取的条件是否为空,为空就让其等于0,这一步操作主要是条件的筛选,可以筛选出我们需要的数据,这样我们就不会选择到我们不需要的数据。“layer.confirm()”是layui插件里面的一个询问框,是用来提醒用户是否要执行某个操作的,这里是提醒用户是否导出当前数据到Excel表格,是就点击确定,否则就重新筛选数据再导出。
    因为这里用到layui插件,因此在使用前要先引用layui插件里面的css文件以及js文件,然后在“$(function(){});”里面加载&&初始化layui模块,否则会报错。加载&&初始化layui模块前要先定义一个全局变量,具体格式如下:
    在这里插入图片描述
    “function(){}”为回调函数,在回调函数里面写一个“window.open()”方法,这里用到window 对象,window 对象表示浏览器中打开的窗口,“open()”是一个方法,“open()”表示打开一个新的浏览器窗口或者查找一个已命名的窗口。这里很明显是一个已命名的窗口,然后在已命名的窗口后面拼接上筛选条件,拼接时一定不能漏掉“? = &”这些字符,不然会报错。
    写完js部分的代码后,就到控制器写控制器的代码。
    在这里插入图片描述
    如图所示:第一步时先查询出需要导出的数据,这里用到了linq查询中的group by分组查询。
    上图是Linq使用group by分组按UserID用户ID查询出用户最高的成绩信息。group by分组语法:group tbAchievement by tbAchievement.UserID into tbStudent表示对tbAchievement按UserID字段进行分组,其结果命名为tbStudent一旦重新命名,tbAchievement的作用域就结束了,所以,最后select时,只能select tbStudent。
    Key属性:返回进行分组的关键字段的值。
    OrderByDescending:表示根据键按降序对序列的元素排序。如根据学生的成绩从大到小来进行排序。
    FirstOrDefault:表示返回序列中的第一个元素;如果序列中不包含任何元素,则返回默认值。如学生的成绩从大到小进行排序后,返回学生最高成绩的成绩ID。
    查询出数据后就要对数据进行条件的筛选,不然筛选不出我们需要的数据。条件筛选数据如下:
    在这里插入图片描述
    这里条件筛选用到了Lambda表达式,Lambda表达式的运算符是“=>”它的左边是参数,右边是表达式或者语句。Lambda表达式可以与linq查询互换,即Lambda表达式可以转化为linq查询,linq查询可以转化为Lambda表达式,Lambda表达式的代码量比linq查询的代码量少。
    写完条件查询后,接下来就是导出数据到Excel表格,这里的代码是重中之重了,导出数据到Excel表格我们主要记的代码就是下面的代码了,先看看代码:
    在这里插入图片描述
    如图所示:(1)首先为要导出的数据创建一个工作簿,也就是先创建一个Excel表格。
    (2)创建一个工作表,并使用“CreateSheet()”来为这个工作表命名,如这里命名为“考生成绩”。
    (3)为这个工作表设计表头,第一步先创建表头,创建好表头后,就为这个表头设计表头字段,“CreateCell()”的索引值从0开始依次递增,“SetCellValue()”表示表头写入的字段。
    (4)写入表格数据,先用“for(){}”循环语句循环遍历需要导出的数据,在“for(){}”里面第一步操作是先创建行,然后再为每一行添加相应的数据。
    (5)将Excel文件转化为文件流输出,然后将Excel文件写入内存流中。
    (6) 输出之前调用Seek(偏移量,游标位置)方法:确定流开始的位置,即移动文件读取指针到指定的位置。
    Seek(0,Seek.begin) 第一个参数表示相对位置,第二个参数表示参照位置。
    (7)为下载的Excel文件命名,如这里命名为“学生安全教育测试成绩+当前时间+.xls”。DateTime表示时间上的一刻,通常以日期和当天的时间表示,Now表示获取一个DateTime对象,该对象设置为此计算机上的当前日期和时间,表示为本地时间,ToString表示使用指定的格式将当前DateTime对象的值转化为它的等效字符串表示形式,而这里的“yyyyMMddHHmmss”表示为“年月日时分秒”。
    (8)返回:用return返回。“application/vnd.ms-excel”表示为MIME文件类型(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。这样,导出数据到Excel表格就完成了。

    展开全文
  • js 实现网页表格数据导出到Excel

    千次阅读 2019-03-01 14:06:33
    js 导出页面数据到Excel表,现在大多都是前后端分离的模式,所以之前常用的都过时了

    最近在做一个项目,涉及到导出数据到Excel表格,由于是采用的前后端分离模式开发的,之前常用的方法已经失效,在网上找了一些资料和方法
    js文件下载地址

    1.是采用的一个插件 xlsx.full.min.js,实现在服务器请求过来数据,按照格式就可以实现导出到Excel表,废话不多说,直接贴代码:

      <!-- 这是页面代码 -->
    	<button class="am-btn am-btn-default" onclick="findExcelData();" type="button">导出</button>
    	<a href="" download="客户信息.xlsx" id="downloadA"></a>
    
    //这是js代码
    //查询客户信息列表 导出Excel
    function findExcelData() {
    	var startDate = $("input[name=startDate]").val();
    	var endDate = $("input[name=endDate]").val();
    	var param = {
    		startDate: startDate,
    		endDate: endDate
    	};
    	$.post(Url + 'customer/toExcel', param, function(data, status) {
    		console.log(data);
    		if (data['result'] == '0000') {
    			var list = eval(data['list']);
    			var size = data['size'];
    			if (size > 0) {
    				downloadExl(list);
    			} else {
    				alert("选择的时间区域没有数据");
    			}
    			//时间回显
    			$("#startDate").val(data['startDate']);
    			$("#endDate").val(data['endDate']);
    		} else {
    			alert(data['message']);
    		}
    	})
    }
    
    var tmpDown; //导出的二进制对象
    function downloadExl(json, type) {
    	//根据json数据,获取excel的第一行存至map
    	var tmpdata = json[0];
    	json.unshift({});
    	var keyMap = []; //获取keys
    	for (var k in tmpdata) {
    		keyMap.push(k);
    		json[0][k] = k;
    	}
    
    	var tmpdata = [];
    	json.map((v, i) => keyMap.map((k, j) => Object.assign({}, {
    		v: v[k],
    		position: (j > 25 ? getCharCol(j) : String.fromCharCode(65 + j)) + (i + 1)
    	}))).reduce((prev, next) => prev.concat(next)).forEach((v, i) => tmpdata[v.position] = {
    		v: v.v
    	});
    
    	//设置区域,比如表格从A1到D10
    	var outputPos = Object.keys(tmpdata);
    	var tmpWB = {
    		SheetNames: ['mySheet'], //保存的表标题
    		Sheets: {
    			'mySheet': Object.assign({},
    				tmpdata, //内容
    				{
    					'!ref': outputPos[0] + ':' + outputPos[outputPos.length - 1] //设置填充区域
    				})
    		}
    	};
    
    	//创建二进制对象写入转换好的字节流
    	tmpDown = new Blob([s2ab(XLSX.write(tmpWB, {
    			bookType: (type == undefined ? 'xlsx' : type),
    			bookSST: false,
    			type: 'binary'
    		} //这里的数据是用来定义导出的格式类型
    	))], {
    		type: ""
    	});
    
    	var href = URL.createObjectURL(tmpDown); //创建对象超链接
    	var timestamp = (new Date()).getTime();
    	var excelName = timestamp + ".xlsx";
    	document.getElementById("downloadA").download = excelName;
    	document.getElementById("downloadA").href = href; //绑定a标签
    	document.getElementById("downloadA").click(); //模拟点击实现下载
    	setTimeout(function() { //延时释放
    		URL.revokeObjectURL(tmpDown); //用URL.revokeObjectURL()来释放这个object URL
    	}, 100);
    }
    
    //字符串转字符流
    function s2ab(s) {
    	var buf = new ArrayBuffer(s.length);
    	var view = new Uint8Array(buf);
    	for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
    	return buf;
    }
    
    //将指定的自然数转换为26进制表示。映射关系:[0-25] -> [A-Z]。
    function getCharCol(n) {
    	let temCol = '',
    		s = '',
    		m = 0
    	while (n > 0) {
    		m = n % 26 + 1
    		s = String.fromCharCode(m + 64) + s
    		n = (n - m) / 26
    	}
    	return s
    }
    

    2.第二种方法是获取页面table,将table标签,包括tr、td等对json数据进行拼接,将table输出到表格上实现,这种方法的弊端在于输出的是伪excel,虽说生成xls为后缀的文件,但文件形式上还是html,下面贴代码

    前端代码
    <button class="am-btn am-btn-default" onclick="method5('kehuTable');" type="button">导出Excel</button>
    
    js代码
    //打印表格
    var idTmr;
    
    function getExplorer() {
    	var explorer = window.navigator.userAgent;
    	//ie  
    	if (explorer.indexOf("MSIE") >= 0) {
    		return 'ie';
    	}
    	//firefox  
    	else if (explorer.indexOf("Firefox") >= 0) {
    		return 'Firefox';
    	}
    	//Chrome  
    	else if (explorer.indexOf("Chrome") >= 0) {
    		return 'Chrome';
    	}
    	//Opera  
    	else if (explorer.indexOf("Opera") >= 0) {
    		return 'Opera';
    	}
    	//Safari  
    	else if (explorer.indexOf("Safari") >= 0) {
    		return 'Safari';
    	}
    }
    //tableid   为table表格ID
    function method5(tableid) {
    	if (getExplorer() == 'ie') {
    		var curTbl = document.getElementById(tableid);
    		var oXL = new ActiveXObject("Excel.Application");
    		var oWB = oXL.Workbooks.Add();
    		var xlsheet = oWB.Worksheets(1);
    		var sel = document.body.createTextRange();
    		sel.moveToElementText(curTbl);
    		sel.select();
    		sel.execCommand("Copy");
    		xlsheet.Paste();
    		oXL.Visible = true;
    
    		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);
    			oXL.Quit();
    			oXL = null;
    			idTmr = window.setInterval("Cleanup();", 1);
    		}
    
    	} else {
    		tableToExcel(tableid)
    	}
    }
    
    function Cleanup() {
    	window.clearInterval(idTmr);
    	CollectGarbage();
    }
    var tableToExcel = (function() {
    	var uri = 'data:application/vnd.ms-excel;base64,',
    		template = '<html><head><meta charset="UTF-8"></head><body><table  border="1">{table}</table></body></html>',
    		base64 = function(
    			s) {
    			return window.btoa(unescape(encodeURIComponent(s)))
    		},
    		format = function(s, c) {
    			return s.replace(/{(\w+)}/g, function(m, p) {
    				return c[p];
    			})
    		}
    	return function(table, name) {
    		if (!table.nodeType)
    			table = document.getElementById(table)
    		var ctx = {
    			worksheet: name || 'Worksheet',
    			table: table.innerHTML
    		}
    		window.location.href = uri + base64(format(template, ctx))
    	}
    })()
    

    3.通过将json遍历进行字符串拼接,将字符串输出到csv文件,代码如下

    <button onclick='tableToExcel()'>导出</button>
    
      function tableToExcel(){
          //要导出的json数据
          var jsonData = [
            {
              name:'李四',
              phone:'1777829****',
              email:'20838****@qq.com'
            },
            {
               name:'张三',
              phone:'1777829****',
              email:'20838****@qq.com'
            },
            {
             name:'王五',
              phone:'1777829****',
              email:'20838****@qq.com'
            },
            {
               name:'老刘',
              phone:'1777829****',
              email:'20838****@qq.com'
            }
          ]
          //列标题,逗号隔开,每一个逗号就是隔开一个单元格
          let str = `姓名,电话,邮箱\n`;
          //增加\t为了不让表格显示科学计数法或者其他格式
          for(let i = 0 ; i < jsonData.length ; i++ ){
            for(let item in jsonData[i]){
                str+=`${jsonData[i][item] + '\t'},`;     
            }
            str+='\n';
          }
          //encodeURIComponent解决中文乱码
          let uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(str);
          //通过创建a标签实现
          var link = document.createElement("a");
          link.href = uri;
          //对下载的文件命名
          link.download =  "json数据表.csv";
          document.body.appendChild(link);
          link.click();
          document.body.removeChild(link);
    
    
    展开全文
  • js导出table表格数据(包括excel,xml,json,csv等格式)
  • 二、下载两个所需要的js文件Blob.js和 Export2Excel.js。 这里贴下下载地址: Export2Exce_jb51.rar 三、src目录下新建vendor文件夹,将Blob.js和 Export2Excel.js放进去。 四、更改webpack.base.conf.js配置 在...
  • C#中导出数据到Excel表格

    万次阅读 2019-04-28 08:17:47
    有些数据的使用不可能仅仅限制于本个项目,还需要在外部使用,当需要在外部使用数据时,就要对数据进行提取,其中一个提取的方式就是把数据导出到Excel表格JS部分 在JS部分的代码很少,就是一个询问提示框然后在...
  • 插件table2excel.js,将table转成excel,兼容所有的游览器,下载地址:https://github.com/rainabba/jquery-table2excel 1.引用js <script src="../js/jquery.min.js"></script> <script src=../js/...
  • 引言:什么是Apache POI?...简单点来说就是可以利用POI来进行数据的导入导出操作,本篇文章主要说明使用Apache POI导出数据到Excel表格。 1.使用Apache POI需要导入相关的依赖,在pom.xml文件中...
  • 通过jQuery技术,把页面上的表格导出Excel,导出时解决纯数据导出后显示科学计数法和日期型导出后为#号显示问题
  • js实现Excel导出

    2019-03-01 14:10:22
    最近在做一个项目,涉及到导出数据到Excel表格,由于是采用的前后端分离模式开发的,之前常用的方法已经失效,在网上找了一些资料和方法,已经完成整理,都能正常使用
  • js前端导出table到excel

    2019-03-07 16:11:59
    这是一个前端通过js导出页面的table生成并下载excel的demo
  • JS对页面表格进行EXCEL导出 ** 1.中间部分在style标签那种可以使用css样式对表格进行任意样式的修改 2.在tableid[removed]中可以对表格中的内容进行修改替换(其中放的内容就是导出后的表格内容) 3.需要引入xlsx....
  • Export2Excel.js、Blob.js实现将数据导出表格的形式
  • 导出excel整理 开发中难免会遇到要导出数据...我做一个简单的导出excel表格功能.这是我在工作上用到的. 1.需要用到的jar <dependency> <groupId>net.sourceforge.jexcelapi</groupId> <...
  • vue-使用js-xlsx导出数据到EXCEL表格

    千次阅读 2018-11-29 11:07:22
    首先,安装三个依赖包: npm install -S file-saver(生产依赖,...我们在src目录下新建一个文件夹,例如vendor,然后把:Blob.js和 Export2Excel.js两个文件(可以去网上找这两个文件)放在该文件夹下,在Export...
  • js操作table表格导出数据到excel方法

    千次阅读 2018-05-23 11:34:15
    关于JavaScript中将前端的table表格导出到excel中的方法:在以下两个链接中https://www.cnblogs.com/zhuxinghan/p/6063193.htmlhttps://blog.csdn.net/angle860123/article/details/7416364会出现“ActiveXObject is...
  • js 导出table表格数据到桌面你好,可以加个按钮,功能是提交表格table的HTML文本)个新页面mytable.php,新页面的功能http header为excel,这个时候就直接下载或者是用本地的excel打开了;新页面直接输出获取的提交...
  • 一个例子,实现导出HTML中的table数据到excel。 一个完整例子,实现导出HTML中的table数据到excel
  • 利用Java+JavaScript从页面导出数据到Excel表格 先来几张效果图,再贴代码, 第一步点击导出按钮 第二步点击确认 最后点击左下角表格打开Excel,查看导出数据是否完整 具体实现如下 JavaScript...
  • 如果我有多个表,我将如何将所有表数据添加到Excel文件中.这是我试过的我创建了2个表,并给出了表索引testTable和testTable1.点击按钮,我将如何将这两个表格id传递给JavaScript函数?现在点击按钮只有第一个表导出到...
  • 数据导出到Excel表格

    2019-05-04 15:46:52
    数据导出到Excel表格 开发工具与关键技术:Visual Studio 2015 作者:Mr_恺 撰写时间:2019.04.30 在很多时候,我们要把查询出来的数据要保存在一个表格中,我们有一个在Mvc中的一个方法,把数据直接导出Excel表格...
  • 如果后台不提供导出excel表格的接口,那么我们js有自己的方法可以支持。操作简单,可封装。完全抛弃后台,自己展示,自己导出,非常实用,资源内包含demo,一目了然。(原生js浏览器全兼容)
  • js导出数据到Excel表或WPS的电子表格

    热门讨论 2013-07-25 23:09:34
    在浏览器中将数据导出到excel或WPS的电子表格中是程序开发中经常在实现的功能,本资源提供数据导出,详细的功能注释让你一目了然,如Excel文件的操作,工作表、工作簿操作,单元格操作,表格格式(表格线、行高、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,384
精华内容 6,153
关键字:

js导出数据到excel表格