数据库数据生成word文档的方法

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

 来自:萧萧小雨
毕业设计需要:从库里取纪录生成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。就是本文介绍的方法,但我只找到了思想,还是介绍生成excel的思想,例子的没有。
郁闷至极,试验多次,终于有了本文的方法和例子。不敢说原创,只能说是综合大家的东西,搞成了这个东西。
废话少说,看例子吧。

我这例子是生成教师个人资料的word文档。
=============================
'这里写你的数据库连接
Response.Buffer = True '这个好像得留着
PeopleId=request("PeopleId")
Set rs = Server.CreateObject("ADODB.Recordset")
sql="select * from People where PeopleId=" & PeopleId
rs.open sql,conn,3,3
if rs.eof and rs.bof then
做点事情
end if
===========================================
上面是把教师的资料取出来,换成你的东西。
下面生成文件。
===============================
Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject") '用到fso
sFileName = "temp.doc"
Set MyFile = fso.CreateTextFile(Server.MapPath(".") & "word""&sFileName, True) '文件放在当前目录的word/下
myString="这里是你预先排好的word文档,要填的地方都空好了,怎么弄底下告诉!"
MyFile.WriteLine(myString)MyFile.Close '关闭文件
===================================
文件已经生成了。注意在iis里把word目录设置为“写入”。
以下将word文档以数据流写出,不让IE自动打开,防止出错误提示。
==================================
Dim strFilePath
Const adTypeBinary = 1
strFilePath = "word/temp.doc"
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile Server.MapPath(strFilePath) 'change the path if necessary
Response.ContentType = "application/octet-stream"
Response.AddHeader "Content-Disposition", "attachment; filename=化工学院教职工数据采集表--"&rs("name")&".doc"'如果文件名固定,那就直接filename=文件名.doc,这个名字就是用户选“保存”时,出现的名字
Response.BinaryWrite
objStream.ReadResponse.Flush
objStream.Close
Set objStream = Nothing '写完,释放对象
===============================
上面是让word文档以附件的形式打开,当然没错误了。
发现把attachment去掉,就会用ie直接打开了。不让它直接打!
=======================
rs.close
set rs=nothing
conn.closeset conn=nothing
====================
关闭释放数据库连接。
=================================
注:myString="" 里面到底是什么?
用word做一个你要的格式的文档,都排好了,
把要填的地方做好标记,比如写几个字什么的。
然后“另存为”web页面。本文所说的是文档里没有图片的情况,有的话我也不会。

到你的硬盘里找到这个web页面,打开,查看源文件,ctrl+a,ctrl+c,
在word里,ctrl+N,ctrl+v,ctrl+F,点“替换”标签,
第一步:查找内容填双引号",替换为填两个双引号"",全部替换即可。
第二步:点“高级”,查找内容里填“特殊字符”的“段落标记”,替换为填“特殊字符”的“不间断空格”,全部替换即可。
然后ctrl+a,ctrl+c,把东西paste在myString=""的两个引号之间。
==========================================
这时.asp文件已经可以执行,不过生成的是空word文档,啥也没填,没用。
在myString后面的引号里,找你那些标记,比如姓名一栏你填的是“西瓜”,
那么现在找到“西瓜”两个字,删除,打"&rs("name")&",
包括前后两个引号。以此类推,把所有的地方都用库中的纪录搞定。
========================================
哦,现在就行了。基本满足要求了。
注:几个小问题

1。有时保存你的word文档到web页面时,会生成”你的文件名.files"的文件夹。
那你用这个.asp文件动态生成word文档时,会提示“XXXX丢失”,不爽!
解决办法:在你保存的web页面,查看源文件,查找“你的文件名.files“,
相关的地方都删除掉。一般会有还有style里的。看着删吧。

2。这个.asp文件执行是会出现下载提示框,如果选“打开”的话,
word就会打开生成的这个文档,我发现有时是以“web视图”打开的,
有时是“页面视图”打开的。很是奇怪,仔细对比了一下,发现:
只要在你的myString里找,在后面加上Print,那么就会以“页面视图”打开了。好!

 

原始:http://www.hanxun.cn/document/content.php?id=113

目录
相关文章
|
21天前
|
SQL 数据库 微服务
微服务03,最简单的Demo,我们每个服务不能重复开发相同业务,微服务数据独立,不要访问其他微服务的数据库,微服务的特点之一是提供不能功能的数据库互相分割,微服务需要根据业务模块拆分,做到单一职责,
微服务03,最简单的Demo,我们每个服务不能重复开发相同业务,微服务数据独立,不要访问其他微服务的数据库,微服务的特点之一是提供不能功能的数据库互相分割,微服务需要根据业务模块拆分,做到单一职责,
|
4天前
|
存储 SQL 关系型数据库
数据库事务:确保数据完整性的关键20
【7月更文挑战第20天】事务是数据库操作的基本逻辑单位,确保数据一致性。ACID原则包括:原子性(操作全成或全败),一致性(事务前后数据合法性),隔离性(并发操作互不影响),持久性(提交后更改永久保存)。MySQL的InnoDB引擎支持事务,通过undo log实现回滚,redo log确保数据持久化。开启事务可使用`BEGIN`或`START TRANSACTION`,提交`COMMIT`,回滚`ROLLBACK`。
131 70
|
9天前
|
SQL DataWorks 关系型数据库
DataWorks产品使用合集之数据集成时源头提供数据库自定义函数调用返回数据,数据源端是否可以写自定义SQL实现
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
7天前
|
存储 负载均衡 定位技术
现代数据库系统中的数据分片策略与优化
数据分片在现代数据库系统中扮演着关键角色,特别是在面对海量数据和高并发访问的情况下。本文探讨了数据分片的基本概念、常见的分片策略(如水平分片与垂直分片)、以及如何通过优化和选择合适的分片策略来提升数据库系统的性能和可扩展性。
|
8天前
|
数据采集 分布式计算 大数据
MaxCompute产品使用合集之数据集成中进行数据抽取时,是否可以定义使用和源数据库一样的字符集进行抽取
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
10天前
|
Java 关系型数据库 数据库
实时计算 Flink版产品使用问题之如何将增量数据直接写入下游数据库
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
15天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的《数据库原理及应用》课程平台的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的《数据库原理及应用》课程平台的详细设计和实现(源码+lw+部署文档+讲解等)
|
18天前
|
Java 数据库连接 应用服务中间件
数据库连接管理与性能优化方法
数据库连接管理与性能优化方法
|
23天前
|
前端开发 数据库
文本----富文本数据如何存入到数据库当中,解决方法,看其他大佬写的文章
文本----富文本数据如何存入到数据库当中,解决方法,看其他大佬写的文章
文本----富文本数据如何存入到数据库当中,解决方法,看其他大佬写的文章
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
数据的资产怎么被AI驱动的数据库理解
数据的资产怎么被AI驱动的数据库理解