javascript复制网页表格内容

 IE支持window.clipboardData.setData, 可以直接对剪贴板的内容进行操作, 实现方式如下:

 1   function exportXls(){
 2       window.clipboardData.setData("Text",document.all('rpTB').outerHTML);  
 3       try {  
 4           var ExApp = new ActiveXObject("Excel.Application")  
 5           var ExWBk = ExApp.workbooks.add()  
 6           var ExWSh = ExWBk.worksheets(1)  
 7           ExApp.DisplayAlerts = false  
 8           ExApp.visible = true  
 9       } catch(e) {  
10          alert("您的电脑没有安装Microsoft Excel软件!")  
11          return false  
12      }   
13      ExWBk.worksheets(1).Paste;   
14  } 

其中rpTB为表格的id

上面的处理方式在FF, Chrome等浏览器中不兼容. 转换为导出cvs格式的文件, 使用到了jquery的插件table2CSV.js, 下面记录处理方式:

<form action="export-excel.jsp" method ="post" > 

......

<input type="submit" class="btn org red" value="导出" onclick="getCSVData()">
</form> ......
<table id="rpTB" class="mytable" style="width: 100%;"></table> ...... function getCSVData(){ if($('#rpTB').html() != ''){ var csv_value=$('#rpTB').table2CSV({ delivery:'value' }); $("#csv_text").val(csv_value); } else{ alert("没有查到符合条件的数据"); } }

export-excel.jsp的内容如下:

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
 response.setHeader("Content-type","application/octet-stream");
 response.setHeader("Content-Disposition","attachment; filename=\"data.csv\"");//生成的csv名为data.csv
 String data = request.getParameter("csv_text");//把数据写入到浏览器,以下载的方式
 out.println(data);
%>

 

 

posted @ 2014-03-05 13:34  jinjinwang  阅读(1345)  评论(0编辑  收藏  举报