打印本文 打印本文 关闭窗口 关闭窗口
将数据库的内容生成WORD文档
作者:武汉SEO闵涛  文章来源:敏韬网  点击数663  更新时间:2009/4/22 23:21:08  文章录入:mintao  责任编辑:mintao

毕业设计需要从库里取纪录生成word文档,我找了半天,主要有这么几种方法:
1。改头,就是象excel似的
Response.Buffer = TRUE
Response.ContentType = "application/vnd.ms-excel" '--excel
Response.ContentType = "application/msword" '--word
excel倒是没事,但word就是总出错。弱!

2。微软的RTF-DOC的例子
  
它的例子倒是很成功,可根据实际需要改起来,不好弄,格式不好控制。

3。调用word.application对象
  在客户端用这种东西Set objWordDoc = CreateObject("Word.Document")来调用word生成,但是要用户改客户端的安全级别设置,不好!格式控制起来也麻烦。我鼓捣了老半天也搞不定。

4。利用FSO生成word文档
  
不敢说原创,只能说是综合大家的东西,搞成了这个东西。本文主要介绍我的这种方法。

  下面主要介绍从数据库中取资料,然后利用FSO生成Word文档的例子,先给出部分代码,最后给出全部代码。

从数据库中读取数据的代码:

<%
'创建RecordSet对象
Set rs = Server.CreateObject("ADODB.Recordset")

'SQL语句根据实际情况调整
sql="select * from People where PeopleId=" & PeopleId

'Open RecordSet,省略了创建及打开connection对象的代码,请自行添加
rs.open sql,conn,3,3

if rs.eof and rs.bof then
    '无记录
else
    '做点事情,主要是从数据库中获取一些资源
    '赋给变量,再用FSO生成
end if
rs.Close
Set rs=Nothing
conn.Close
Set conn = Nothing
%>



用FSO创建word的代码:

<%
  '下面生成文件的代码。
  Dim fso, MyFile
  '创建FSO对象,有些服务器有可能不支持这个对象,那就没戏了
  Set fso = CreateObject("Scripting.FileSystemObject")   
  '文件名
  sFileName = "temp.doc"
  '生成新文件文件放在当前目录的word/下,当前测试时必须有这个目录
  Set MyFile = fso.CreateTextFile(Server.MapPath(".")& "\word\"&sFileName, True)

  myString="这里是你预先排好的word文档,要填的地方都空好了,怎么弄底下告诉!"

 '将MyString作为新文件的内容写入文件
 MyFile.WriteLine(myString)
 
 MyFile.Close  '关闭文件
%>



文件已经生成了。注意在iis里把word目录设置为“写入”。
以下将word文档以数据流写出,不让IE自动打开,防止出错误提示。

打印本文 打印本文 关闭窗口 关闭窗口