使用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" 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中" οnclick= "CellToTable('tableToExcel')" />
</body>
</html>