我在本站找到了导出的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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</td> 
<td>000011</td> 
<td bgcolor="#CC0000">1</td> 
<td bgcolor="#CC0000">1</td> 
<td>&nbsp;</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> 

解决方案 »

  1.   

    能否实现将导出的Excel文件保存到指定的目录下?由于浏览器安全性的问题,是不允许这么做的,再说了,你怎么知道客户端都有什么目录呢
      

  2.   

    大虾您理解有误,我也没说清,我用jsp做的服务器端程序,要保存到服务器端指定用户目录下,以便该用户查看。
      

  3.   

    http://ajava.org/readbook/js/jsjc6/10283.html
    参考下,javascript 不能读写各户机上的文件的。
      

  4.   

    我应该换个思路是吧?先把表单里的数据添到数据库里面去,然后再从数据库导出到Excel,并在服务器端保存到某个用户的目录下面。