我在本站找到了导出的js函数,试了一下,可行,测试代码代码如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head><body>
<script>// 这个代码可以大大减少IE下的当前页面的Excel导出工作量
// 如果不能正确执行, 请把当前站点加入可信站点并调低安全级 参考图片: IE添加可信站点.png
// 导出为Excel, 参数为 HTML 或者 表格代码, 如: "AtB", xxx.innerHTML
function printToExcel(html) {
try{
var ExApp = new ActiveXObject("Excel.Application")
var ExWBk = ExApp.workbooks.add()
var ExWSh = ExWBk.worksheets(1)
ExApp.DisplayAlerts = false
ExApp.visible = true
}catch(e){
alert("您所设定的安全级别太高,或者您的电脑没有安装Microsoft Excel软件!")
return false
}
window.clipboardData.setData("Text", html);
ExWBk.worksheets(1).Paste;
ExWBk.worksheets(1).Columns.AutoFit;
ExWBk.worksheets(1).Rows.AutoFit;
}
// 将 HTML 表格导出为 Excel
function exportToExcel(table)
{
if(confirm("确认要导出吗?")){
// Start Excel and get Application object.
var oXL = new ActiveXObject("Excel.Application");
// Get a new workbook.
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var hang = table.rows.length;
var lie = table.rows(0).cells.length;
// Add table headers going cell by cell.
for (i=0;i<hang;i++)
{
for (j=0;j<lie;j++)
{
oSheet.Cells(i+1,j+1).Value = table.rows(i).cells(j).innerText;
}
}
oXL.Visible = true;
oXL.UserControl = true;
//oXL.saveAs(C:\\d.xls);
}
}
</script>
<!-- 以下为数据区 -->
<div id="dataArea">
<p><font color=red>dkfsdkf</font> </p>
<table id="table1" width="200" border="1">
<tr>
<td>dff</td>
<td>ffd </td>
<td>dsf</td>
<td>dsf</td>
</tr>
<tr>
<td>f</td>
<td>dsf</td>
<td>dsf</td>
<td>f</td>
</tr>
<tr>
<td>v</td>
<td>dsf</td>
<td>sdf</td>
<td>d</td>
</tr>
<tr>
<td>v</td>
<td>df</td>
<td>fd</td>
<td>df</td>
</tr>
</table>
<p> </p>
</div>
<script>
if(confirm("是否导出表格数据为 Excel?")) {
printToExcel(dataArea.innerHTML);
//exportToExcel(table1);
}
</script></body>
</html>我对js不熟悉,请问在这两种方法的基础上,能否实现将导出的Excel文件保存到指定的目录下?
我也看到过一个声称有保存为指定目录指定文件名的函数,但实现不了,不知道为什么。代码如下,为了便于测试,附带了全部的html,请大家指正:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns:x="urn:schemas-microsoft-com:office:excel">
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT=""> <script language="javascript">
function exportExcel(atblData,pathname){
if (typeof(EXPORT_OBJECT)!="object"){
document.body.insertAdjacentHTML("afterBegin","<OBJECT style='display:none' classid=clsid:0002E510-0000-0000-C000-000000000046 id=EXPORT_OBJECT></Object>");
}
with (EXPORT_OBJECT){
DataType = "HTMLData";
HTMLData =atblData.outerHTML;
try{
ActiveSheet.Export(pathname, 0);
alert('輸出完成!');
}
catch (e){
alert('導出Excel表失敗,确定已安裝Excel2000(或更高版本),并且沒打開同名xls文件');//
//}
}
}
}
</script> </HEAD> <BODY id="mybody">
<TABLE id=tb WIDTH=75% BORDER=1 CELLSPACING=1 CELLPADDING=1>
<TR>
<TD>一</TD>
<TD>二</TD>
<TD>三</TD>
</TR>
<TR>
<TD rowspan=3>四</TD>
<TD>五</TD>
<TD>六</TD>
</TR>
<TR>
<TD>七</TD>
<TD>八</TD>
</TR>
<TR>
<TD>九</TD>
<TD>一○</TD>
</TR>
<TR>
<TD>一一</TD>
<TD>一二</TD>
<TD>一三</TD>
</TR>
</TABLE>
<p> </p>
<TABLE border=1>
<TR>
<TD x:num>00123</TD>
<TD x:str>0123</TD>
</TR>
<TR>
<TD x:str>00234</TD>
<TD x:str>345.000</TD>
</TR>
</TABLE>
<p> </p>
<table width="100%" border="2" cellspacing="0" cellpadding="0" border=1 x:str>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>000011</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td colspan="2" rowspan="5">1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td rowspan="5">1</td>
<td>1</td>
</tr>
<tr>
<td><table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
</tr>
</table></td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>000011</td>
<td> </td>
</tr>
<tr>
<td>000011</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>000011</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>000011</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>000011</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td colspan="2" rowspan="4" bgcolor="#FFCC00">1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td height="93" bgcolor="#00CC33">1</td>
<td bgcolor="#00CC33">1</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#00CC33">000011</td>
<td bgcolor="#00CC33">1</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#00CC33">1</td>
<td bgcolor="#00CC33">1</td>
<td bgcolor="#00CC33">1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#00CC33">1</td>
<td bgcolor="#00CC33">1</td>
<td bgcolor="#00CC33">1</td>
<td>000011</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#00CC33">1</td>
<td bgcolor="#00CC33">1</td>
<td bgcolor="#00CC33">1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>000011</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td colspan="4" rowspan="10">1</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>000011</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>000011</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>000011</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>000011</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#FF0000">1</td>
<td bgcolor="#FF0000">1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#FF0000">1</td>
<td bgcolor="#FF0000">1</td>
<td>000011</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#FF0000">1</td>
<td bgcolor="#FF0000">1</td>
<td>1</td>
<td>1</td>
<td>000011</td>
</tr>
<tr>
<td bgcolor="#FF0000">1</td>
<td bgcolor="#FF0000">1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#FF0000">1</td>
<td bgcolor="#FF0000">1</td>
<td>000011</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#FF0000">1</td>
<td bgcolor="#FF0000">1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#FF0000">000011</td>
<td bgcolor="#FF0000">1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td> </td>
<td>000011</td>
<td bgcolor="#CC0000">1</td>
<td bgcolor="#CC0000">1</td>
<td> </td>
</tr>
<tr>
<td>1</td>
<td>000011</td>
<td bgcolor="#CC0000">1</td>
<td bgcolor="#CC0000">1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td bgcolor="#CC0000">1</td>
<td bgcolor="#CC0000">1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td bgcolor="#CC0000">1</td>
<td bgcolor="#CC0000">1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td bgcolor="#CC0000">1</td>
<td bgcolor="#CC0000">1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td bgcolor="#CC0000">1</td>
<td bgcolor="#CC0000">1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>0000111</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>000011</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>0000110000111</td>
<td>0000111</td>
<td>0000111</td>
<td>0000111</td>
<td>000011</td>
</tr>
</table>
<p>
<input name="button" type="button" onClick="javascript:exportExcel(table2,'D:\\aa.xls');" value="輸出XLS文件到(D:\aa.xls)"> </p>
</BODY>
</HTML>
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head><body>
<script>// 这个代码可以大大减少IE下的当前页面的Excel导出工作量
// 如果不能正确执行, 请把当前站点加入可信站点并调低安全级 参考图片: IE添加可信站点.png
// 导出为Excel, 参数为 HTML 或者 表格代码, 如: "AtB", xxx.innerHTML
function printToExcel(html) {
try{
var ExApp = new ActiveXObject("Excel.Application")
var ExWBk = ExApp.workbooks.add()
var ExWSh = ExWBk.worksheets(1)
ExApp.DisplayAlerts = false
ExApp.visible = true
}catch(e){
alert("您所设定的安全级别太高,或者您的电脑没有安装Microsoft Excel软件!")
return false
}
window.clipboardData.setData("Text", html);
ExWBk.worksheets(1).Paste;
ExWBk.worksheets(1).Columns.AutoFit;
ExWBk.worksheets(1).Rows.AutoFit;
}
// 将 HTML 表格导出为 Excel
function exportToExcel(table)
{
if(confirm("确认要导出吗?")){
// Start Excel and get Application object.
var oXL = new ActiveXObject("Excel.Application");
// Get a new workbook.
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var hang = table.rows.length;
var lie = table.rows(0).cells.length;
// Add table headers going cell by cell.
for (i=0;i<hang;i++)
{
for (j=0;j<lie;j++)
{
oSheet.Cells(i+1,j+1).Value = table.rows(i).cells(j).innerText;
}
}
oXL.Visible = true;
oXL.UserControl = true;
//oXL.saveAs(C:\\d.xls);
}
}
</script>
<!-- 以下为数据区 -->
<div id="dataArea">
<p><font color=red>dkfsdkf</font> </p>
<table id="table1" width="200" border="1">
<tr>
<td>dff</td>
<td>ffd </td>
<td>dsf</td>
<td>dsf</td>
</tr>
<tr>
<td>f</td>
<td>dsf</td>
<td>dsf</td>
<td>f</td>
</tr>
<tr>
<td>v</td>
<td>dsf</td>
<td>sdf</td>
<td>d</td>
</tr>
<tr>
<td>v</td>
<td>df</td>
<td>fd</td>
<td>df</td>
</tr>
</table>
<p> </p>
</div>
<script>
if(confirm("是否导出表格数据为 Excel?")) {
printToExcel(dataArea.innerHTML);
//exportToExcel(table1);
}
</script></body>
</html>我对js不熟悉,请问在这两种方法的基础上,能否实现将导出的Excel文件保存到指定的目录下?
我也看到过一个声称有保存为指定目录指定文件名的函数,但实现不了,不知道为什么。代码如下,为了便于测试,附带了全部的html,请大家指正:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns:x="urn:schemas-microsoft-com:office:excel">
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT=""> <script language="javascript">
function exportExcel(atblData,pathname){
if (typeof(EXPORT_OBJECT)!="object"){
document.body.insertAdjacentHTML("afterBegin","<OBJECT style='display:none' classid=clsid:0002E510-0000-0000-C000-000000000046 id=EXPORT_OBJECT></Object>");
}
with (EXPORT_OBJECT){
DataType = "HTMLData";
HTMLData =atblData.outerHTML;
try{
ActiveSheet.Export(pathname, 0);
alert('輸出完成!');
}
catch (e){
alert('導出Excel表失敗,确定已安裝Excel2000(或更高版本),并且沒打開同名xls文件');//
//}
}
}
}
</script> </HEAD> <BODY id="mybody">
<TABLE id=tb WIDTH=75% BORDER=1 CELLSPACING=1 CELLPADDING=1>
<TR>
<TD>一</TD>
<TD>二</TD>
<TD>三</TD>
</TR>
<TR>
<TD rowspan=3>四</TD>
<TD>五</TD>
<TD>六</TD>
</TR>
<TR>
<TD>七</TD>
<TD>八</TD>
</TR>
<TR>
<TD>九</TD>
<TD>一○</TD>
</TR>
<TR>
<TD>一一</TD>
<TD>一二</TD>
<TD>一三</TD>
</TR>
</TABLE>
<p> </p>
<TABLE border=1>
<TR>
<TD x:num>00123</TD>
<TD x:str>0123</TD>
</TR>
<TR>
<TD x:str>00234</TD>
<TD x:str>345.000</TD>
</TR>
</TABLE>
<p> </p>
<table width="100%" border="2" cellspacing="0" cellpadding="0" border=1 x:str>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>000011</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td colspan="2" rowspan="5">1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td rowspan="5">1</td>
<td>1</td>
</tr>
<tr>
<td><table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
</tr>
</table></td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>000011</td>
<td> </td>
</tr>
<tr>
<td>000011</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>000011</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>000011</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>000011</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td colspan="2" rowspan="4" bgcolor="#FFCC00">1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td height="93" bgcolor="#00CC33">1</td>
<td bgcolor="#00CC33">1</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#00CC33">000011</td>
<td bgcolor="#00CC33">1</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#00CC33">1</td>
<td bgcolor="#00CC33">1</td>
<td bgcolor="#00CC33">1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#00CC33">1</td>
<td bgcolor="#00CC33">1</td>
<td bgcolor="#00CC33">1</td>
<td>000011</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#00CC33">1</td>
<td bgcolor="#00CC33">1</td>
<td bgcolor="#00CC33">1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>000011</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td colspan="4" rowspan="10">1</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>000011</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>000011</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>000011</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>000011</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#FF0000">1</td>
<td bgcolor="#FF0000">1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#FF0000">1</td>
<td bgcolor="#FF0000">1</td>
<td>000011</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#FF0000">1</td>
<td bgcolor="#FF0000">1</td>
<td>1</td>
<td>1</td>
<td>000011</td>
</tr>
<tr>
<td bgcolor="#FF0000">1</td>
<td bgcolor="#FF0000">1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#FF0000">1</td>
<td bgcolor="#FF0000">1</td>
<td>000011</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#FF0000">1</td>
<td bgcolor="#FF0000">1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td bgcolor="#FF0000">000011</td>
<td bgcolor="#FF0000">1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td> </td>
<td>000011</td>
<td bgcolor="#CC0000">1</td>
<td bgcolor="#CC0000">1</td>
<td> </td>
</tr>
<tr>
<td>1</td>
<td>000011</td>
<td bgcolor="#CC0000">1</td>
<td bgcolor="#CC0000">1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td bgcolor="#CC0000">1</td>
<td bgcolor="#CC0000">1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td bgcolor="#CC0000">1</td>
<td bgcolor="#CC0000">1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td bgcolor="#CC0000">1</td>
<td bgcolor="#CC0000">1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td bgcolor="#CC0000">1</td>
<td bgcolor="#CC0000">1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>0000111</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>000011</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>0000110000111</td>
<td>0000111</td>
<td>0000111</td>
<td>0000111</td>
<td>000011</td>
</tr>
</table>
<p>
<input name="button" type="button" onClick="javascript:exportExcel(table2,'D:\\aa.xls');" value="輸出XLS文件到(D:\aa.xls)"> </p>
</BODY>
</HTML>
参考下,javascript 不能读写各户机上的文件的。