| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 | 
							- import React ,{Component} from 'react';
 
- import {Button} from 'antd';
 
- class ExportExec extends React.Component {
 
-     constructor(props) {
 
-         super(props);
 
-         this.state = {  }
 
-     }
 
-     //判断浏览器类型
 
- 	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';
 
- 		}
 
- 	}
 
-     //导出为exel表格
 
- 	tabExel() {
 
-         this.props.callback(true);
 
-     }
 
-     tabaleClick(tabel){
 
-         var table = tabel;
 
-         var idTmr;
 
- 		//debugger;
 
- 		//整个表格拷贝到EXCEL中
 
- 		if(this.getExplorer() == 'ie') {
 
- 			var curTbl = document.getElementById(tableid);
 
- 			var oXL = new ActiveXObject("Excel.Application");
 
- 			//创建AX对象excel 
 
- 			var oWB = oXL.Workbooks.Add();
 
- 			//获取workbook对象 
 
- 			var xlsheet = oWB.Worksheets(1);
 
- 			//激活当前sheet 
 
- 			var 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);
 
- 			}
 
- 		} else {
 
- 			this.tableToExcel(table,this.getExplorer());
 
- 		}
 
- 		function Cleanup() {
 
- 			window.clearInterval(idTmr);
 
- 			CollectGarbage();
 
- 		}
 
- 		this.props.callback(false);
 
-     }
 
- 	tableToExcel(table,name) {
 
- 		var uri = 'data:application/vnd.ms-excel;base64,',
 
- 			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><!--[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>',
 
- 			base64 = function(s) {
 
- 				return window.btoa(unescape(encodeURIComponent(s)))
 
- 			},
 
- 			format = function(s, c) {
 
- 				return s.replace(/{(\w+)}/g,
 
- 					function(m, p) {
 
- 						return c[p];
 
- 					})
 
- 			}
 
- 			if(!table.nodeType) table = document.getElementById(table);
 
- 			var ctx = {
 
- 				worksheet: name || 'Worksheet',
 
- 				table: table.innerHTML
 
- 			};
 
- 			window.location.href = uri + base64(format(template, ctx))
 
-     }
 
-     componentWillReceiveProps(nextProps){
 
-         if(nextProps.data){
 
-             this.tabaleClick(nextProps.data)
 
-         }
 
-     }
 
-     render() { 
 
-         return ( 
 
-                 <Button onClick={this.tabExel.bind(this)}>导出到表格</Button>
 
-             );
 
-     }
 
- }
 
-  
 
- export default ExportExec;
 
 
  |