|  
 
 
server.mappath如何取得服务器的地址 
代码如下: <!--#include file="adminconn.inc" --> <% '(1) 建立Excel.Application对象  set objExcel=CreateObject("Excel.Application")  '(2) 打开Excel模板  objExcel.Workbooks.Open(server.mappath("\temp")&"\htxx.xlt") '打开Excel模板  objExcel.Sheets(1).select '选中工作页  set sheetActive=objExcel.ActiveWorkbook.ActiveSheet   '(3) Excel的常规添加操作  'sheetActive.range("g4").value=date()  '这里添加的是时间,当然也可以是你指定的任何数据  '(4) Excel中添加数据库中的纪录  '这里假设已有一个数据集adoRset,存放由Sql操作生成的统计数据。  Set adoRset=Server.CreateObject("ADODB.RecordSet")  sql="select * from hetong order by id"    adoRset.open sql,conn,1,1 num=3 '从Excel的第七行开始  do until adoRset.EOF '循环直至数据集中的数据写完  strRange="a"&num&":j"&num '设定要填写内容的单元区域  sheetActive.range(strRange).font.size=10 '设定字体大小  sheetActive.range(strRange).WrapText=false '设定文字回卷  sheetActive.range(strRange).ShrinkToFit=true '设定是否自动适应表格单元大小  sheetActive.range(strRange).value=array(ltrim(trim(adoRset("fenlei"))),ltrim(trim(adoRset("htbh")))&" "<rim(trim(adoRset("htbh_bc"))),ltrim(trim(adoRset("htdw"))),ltrim(trim(adoRset("wzmc"))),ltrim(trim(adoRset("htje"))),adoRset("yfk_bl")*100,adoRset("jsk_bl")*100,adoRset("zbj_bl")*100,adoRset("qd_date"),ltrim(trim(adoRset("beizhu"))) ) '把数据集中的数据填写到相应的单元中  num=num+1  adoRset.MoveNext  loop  '(5) Excel临时报表文件的保存及处理  function getTemporaryFile(myFileSystem)   dim tempFile,dotPos  tempFile=myFileSystem.getTempName  dotPos=instr(1,tempFile,".")  getTemporaryFile=mid(tempFile,1,dotPos)&"xls"  end function   set myFs=createObject("scripting.FileSystemObject")  filePos=server.mappath("\temp") & "\tmp\" '要存放打印临时文件的临时目录  fileName=getTemporaryFile(myFs) '取得一个临时文件名  'myFs.DeleteFile filePos&"*.xls" '删除该目录下所有原先产生的临时打印文件  set myFs=nothing  'Excel临时文件的保存代码为:  objExcel.ActiveWorkbook.saveas filePos&filename   '(6) 退出Excel应用  objExcel.quit  set objExcel=Nothing  %>  
存在问题: 用此程序可实现导出文件至EXCEL,网络环境下,用客户端机器访问服务器,提示导出成功,然后点击下载导出的文件,提示文件不存在,原因是导出的文件路径显示的是服务器的物理路径(如:d:\web\.....),并非我想要的地址(如:http://10.10.2.1/...).server.mappath行如何写,才能实现这个目的呢。急急急。  
不用server.mappath,直接从网站更目录设置路径就行了 其他不变,增加红色的 <% '(1) 建立Excel.Application对象  set objExcel=CreateObject("Excel.Application")  '(2) 打开Excel模板  objExcel.Workbooks.Open(server.mappath("\temp")&"\htxx.xlt") '打开Excel模板  objExcel.Sheets(1).select '选中工作页  set sheetActive=objExcel.ActiveWorkbook.ActiveSheet   '(3) Excel的常规添加操作  'sheetActive.range("g4").value=date()  '这里添加的是时间,当然也可以是你指定的任何数据  '(4) Excel中添加数据库中的纪录  '这里假设已有一个数据集adoRset,存放由Sql操作生成的统计数据。  Set adoRset=Server.CreateObject("ADODB.RecordSet")  sql="select * from hetong order by id"    adoRset.open sql,conn,1,1 num=3 '从Excel的第七行开始  do until adoRset.EOF '循环直至数据集中的数据写完  strRange="a"&num&":j"&num '设定要填写内容的单元区域  sheetActive.range(strRange).font.size=10 '设定字体大小  sheetActive.range(strRange).WrapText=false '设定文字回卷  sheetActive.range(strRange).ShrinkToFit=true '设定是否自动适应表格单元大小  sheetActive.range(strRange).value=array(ltrim(trim(adoRset("fenlei"))),ltrim(trim(adoRset("htbh")))&" "<rim(trim(adoRset("htbh_bc"))),ltrim(trim(adoRset("htdw"))),ltrim(trim(adoRset("wzmc"))),ltrim(trim(adoRset("htje"))),adoRset("yfk_bl")*100,adoRset("jsk_bl")*100,adoRset("zbj_bl")*100,adoRset("qd_date"),ltrim(trim(adoRset("beizhu"))) ) '把数据集中的数据填写到相应的单元中  num=num+1  adoRset.MoveNext  loop  '(5) Excel临时报表文件的保存及处理  function getTemporaryFile(myFileSystem)   dim tempFile,dotPos  tempFile=myFileSystem.getTempName  dotPos=instr(1,tempFile,".")  getTemporaryFile=mid(tempFile,1,dotPos)&"xls"  end function   set myFs=createObject("scripting.FileSystemObject")  filePos=server.mappath("\temp") & "\tmp\" '要存放打印临时文件的临时目录  fileName=getTemporaryFile(myFs) '取得一个临时文件名  'myFs.DeleteFile filePos&"*.xls" '删除该目录下所有原先产生的临时打印文件  set myFs=nothing  'Excel临时文件的保存代码为:  objExcel.ActiveWorkbook.saveas filePos&filename   '(6) 退出Excel应用  objExcel.quit  set objExcel=Nothing  %> <a href="/tmp/<%=filename%>">下载</a>  
  
 |