1. 程式人生 > >JS呼叫頁面表格匯出excel

JS呼叫頁面表格匯出excel

使用JS方法呼叫頁面表格匯出excel有很大的限制:

       1、 目前試了幾個瀏覽器,只有IE支援,

        2、點選   工具---安全---自定義級別---ActiveX  相關選項啟用


下面是html程式碼

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<html>
<head>
<script language="javascript"> 
var idTmr = "";
// 函式功能:複製表格到Excel中
// 參    數:tableID 表的id
function CellToTable(tableID)
{         
   var tid=document.getElementById(tableID);
                  // 載入ActiveX控制元件,獲取Excel控制代碼
                  var exApp = new ActiveXObject("Excel.Application");
                  
                // 建立一個Excel檔案
                var owb = exApp.WorkBooks.add();
                
                // 獲取sheet1控制代碼CA
                var exSheet = exApp.ActiveWorkBook.WorkSheets(1);
              // 設定sheet1的名稱
               exSheet.name="演示覆製表格到Excel中";
                // copy指定的表格
                var sel=document.body.createTextRange();
            sel.moveToElementText(tid);
            sel.select();
            sel.execCommand("Copy");
                
               exSheet.Paste();// 貼上到sheet中
                
                //exApp.save();// 彈出儲存對話方塊,儲存Excel檔案 
                 exApp.Visible = false;
                
                var fname = exApp.Application.GetSaveAsFilename("save.xls", "Excel Spreadsheets (*.xls), *.xls");
                owb.SaveAs(fname);
                
                exApp.Quit();// 退出Excel例項 
                exApp = null;
                // 呼叫Cleanup()進行垃圾回收
                idTmr = window.setInterval("Cleanup();",10);
        
}
// 函式功能:殺掉Excel程序
function Cleanup() {
          window.clearInterval(idTmr);
          CollectGarbage();
}
</script> 
</head>
<body>
<table width="307" border="1" cellspacing="0" cellpadding="0" id="tableToExcel" name="tableName">
<tr bgcolor="#99CCCC">
    <td width="66" rowspan="4" bgcolor="#33FF99">吉林的長春</td>
    <td width="67" rowspan="4" bgcolor="#33FF99">遼寧的瀋陽</td>
    <td width="94" rowspan="4" bgcolor="#33FF99">黑龍江的哈爾濱</td>
    <td width="30" rowspan="4" bgcolor="#33FF99">北京</td>
    <td width="38" bgcolor="#66CC99">海淀</td>
</tr>
<tr bgcolor="#99CCCC">
    <td bgcolor="#66CC99">吉林-長春</td>
</tr>
<tr bgcolor="#99CCCC">
    <td bgcolor="#66CC99">遼寧-瀋陽</td>
</tr>
<tr bgcolor="#99CCCC">
    <td bgcolor="#66CC99">黑龍江-哈爾濱</td>
</tr>
<tr bgcolor="#99CCCC">
    <td colspan="5">演示javascrīpt對錶格copy的處理過程(推薦) </td>
</tr>
<tr bgcolor="#99CCCC">
    <td colspan="5"><label>
      <div align="center">
        <input name="textfield" type="text" value="單行文字框控制元件" size="30"/>
       </div>
    </label></td>
</tr>
</table>
<br>               
   <input type="submit" name="Submit3" value="點選複製表格到Excel中" onclick= "CellToTable('tableToExcel')" />
</body>
</html>