您的位置:首页 > 编程语言 > ASP

利用asp将数据写入到新的excel文件中

2006-11-08 17:41 489 查看
很多人都在坛子里问这个问题,因为代码比较长,很多人给出的答案都不是很完整,导致一些刚接触的人走了不少的弯路,这里总结一下生成的过程以及原理,希望能给大家一个参考和帮助

1.首先生成一个excel文件,需要了解这种文件的格式,比如文件头的信息,文件体(body部分) ,文件底信息;我们可以通过这样的方式来探测一个excel文件的结构,先建立excel文件,打开后另存为网页形式,这样就获得了excel在网页中的全部代码 其中把一些文件头的信息和文件底信息,我们保存在两个固定的文件中,比如tou.txt 和di.txt 这样以后我们生成excel的时候,读取这两个文件内容就可以了  ,然后文件体信息,因为我们输出的内容会根据我们的查询生成不同的内容,所以这个在写一个程序的时候直接写就可以了,(内容部分我们完全可以按照我们打好的表格,来控制我们输出的内容的结构)

注:将excel保存为网页后,我们直接再把扩展名改为.xls,系统仍然是可以打开访问的。所以有了这些内容,我们既可以生成.htm的excel文件,也可以直接生成.xls的excel文件

2.实际生成的过程。
asp程序模块-----》读取文件头信息-----》生成文件体信息-------》读取文件底信息----》然后把这三个内容通过fso生成一个扩张名为.xls或者.htm的电子表格文件。

3。例子
文件头:tou.txt
文件底:di.txt

生成部分:
sub toexcel(filename)  

 'TOEXCELLR变量保存文件体信息,大家可以看一下,我这里结构都是用表格控制,
  
  TOEXCELLR="<table width='100%' border='0' cellspacing='0' cellpadding='0'><tr align='center'> "
  
  TOEXCELLR=TOEXCELLR&"<td>公司名称</td>"
  TOEXCELLR=TOEXCELLR&"<td>公司英文名称</td>"
  TOEXCELLR=TOEXCELLR&"<td>出国任务通知书主送单位</td>"
  TOEXCELLR=TOEXCELLR&"<td>出国任务通知书所需份数</td>"
 TOEXCELLR=TOEXCELLR&"</tr><tr>"
   
  TOEXCELLR=TOEXCELLR&"<td>七月网络</td>"
  TOEXCELLR=TOEXCELLR&"<td>julyweb</td>"
  TOEXCELLR=TOEXCELLR&"<td>七月网络</td>"
  TOEXCELLR=TOEXCELLR&"<td>1</td>"
   
 
  TOEXCELLR=TOEXCELLR&" </tr>"
 
 
  toexcellr=toexcellr&"</table>"
  tou=readtext("tou.txt")
  di=readtext("di.txt")
  toexcellr=tou&toexcellr&di
  call savetext(filename,toexcellr)
end sub

'---------------辅助的函数,一个读取文件的函数,一个写入文件的函数

function ReadText(FileName)  '这是一个用于读出文件的函数
  'response.write server.MapPath(FileName)
  'response.end
set adf=server.CreateObject("Adodb.Stream")
with adf
.Type=2
.LineSeparator=10
.Open
.LoadFromFile (server.MapPath(FileName))
.Charset="GB2312"
.Position=2
ReadText=.ReadText
.Cancel()
.Close()
end with
set ads=nothing
end function

sub SaveText(FileName,Data)  '这是一个用于写文件的函数
 set fs= createobject("scripting.filesystemobject")
    set ts=fs.createtextfile(server.MapPath(FileName),true)
    ts.writeline(data)
    ts.close
    set ts=nothing
    set fs=nothing
end sub

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息