仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 473|回复: 9
打印 上一主题 下一主题

[学习教程] ASP教程之用ASP创立Microsoft Word 文件

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:56:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。word|创立跟着人们对数据库及静态HTML(DHTML)的使用和对XML的乐趣的增添,以是在贸易网站的数据中利用静态内容变得愈来愈广泛。这里我们就乐成使用了一则最新的技能――用ASP创立Word文件,我想您看后一定会遭到很年夜的启示。
原文出处:http://www.asptoday.com/articles/19990825.htm

  背景

  BuildDoc.asp是一个ASP文件,它读进一个网页表单的输入,并创立一个MicrosoftWord文件作为输入,个中包括依据表单内数据改动发生的一个表格。表单内容不再范围于静态信息。也就是说,表单中所显现的内容大概跟着用户的交互感化而改动。




  
  BuildDoc所满意的贸易需求是:依据发卖职员网页列表变更的纪录,创建表单函件。只要被发卖职员修正过的数据才被发送到Word,在那边这些数据被格局化到表格中。

  BuildDoc读进表单上的一切信息,辨认被改动的行,然后用被改动的行中包括的信息来创立一个MicrosoftWord文件。BuildDoc利用一个模板文件(buildDoc.dot),个中包括地点头和一些事后格局化的文本。然后向文件中写进一个表格,个中的每行都对应与网页表单中被修正过的一行。




  
  怎样做?

  入手下手时,将一切的网页表单域读进吸收网页的隐含表单域中。鄙人面的源代码中,请注重在Body标志中对“onLoad”的挪用。它挪用buildDocVB剧本子程序,向它传送3个参数:页面中表单的内容(一切的隐含域)、Word模板文件的地位、从输出表单中收到的行数。读一切的输出表单域,然后当页面装载后挪用buildDoc子程序。为了冗长起见,这里假定一切变量在利用之前都已被声明:

  buildDoc.asp中装载输出表单域的代码以下:


〈!DOCTYPEHTMLPUBLIC"-//W3C/DTDHTML3.2Final//EN">
〈HEAD>
〈TITLE>BuildDocument〈/TITLE>
〈METAHTTP-EQUIV="Refresh"CONTENT="30;URL=orderForm.asp">
〈/HEAD>
〈%
dotLocation="servernamedirectoryheTemplate.dot"
intRowCount=Request.Form("rowCount")initializearowcounter
%>
〈BODYLanguage="VBScript"onLoad="buildDocdocument.theForm,
〈%=dotLocation%>,intRowCount>
〈FORMNAME="theForm">
〈%
itemCount=0setfieldcountertozero
ForEachIteminRequest.Formcountuptheformfields
itemCount=itemCount+1usingFor..Nextloop
%>
〈INPUTTYPE="hidden"NAME="〈%=Item%>"VALUE="〈%=Request(Item)%>">
〈%Next%>
〈INPUTTYPE="hidden"NAME="numbRows"VALUE="〈%=intRowCount%>">
〈INPUTTYPE="hidden"NAME="fieldCount"VALUE="〈%=itemCount%>">
〈/FORM>
〈/BODY>
〈/HTML>
  用上面例子中的代码来创立一个Word文件工具。请注重在InternetExplorer4+中,要将扫瞄器的平安性设置为Low或Custom,以能使使用程序运转乐成。


〈%
SetobjWordDoc=CreateObject("Word.Document")
ObjWordDoc.Application.Documents.AddtheTemplate,False
ObjWordDoc.Application.Visible=True
%>
  调剂数组的维数使它与网页表单所包括的行数不异。这时候,将Y轴设为4个常量,这是输入文件中所必要的栏数。X轴包括从表单中吸收的行数。

〈%RedimPreservetheArray(4,intTableRows)%>

  如今入手下手反省一切的表单行。在一切输出的网页表单域中轮回,搜集每一个表单域名及其响应的值。逐一反省以决意将其放进哪一个数列元素内,然后将其放进。以下举例代码中的SELECTCASE命令很主要,这决意表单域属于哪一列。为了便利,利用不断定编码的CASE选择。


〈%
ForintCount=0tofrmData.fieldCount.value
strOkay="Y"
strSearch=frmData.elements(intCount).nameloadthefieldname
strValue=frmData.elements(intCount).valueloadthefieldvalue
strPosition=Instr(1,strSearch,"_")getposvalof"_"
intStringLen=strPosition-1
IfintStrLen>0Then
strLeft=Left(strSearch,intStringLen)
strRight=Right(strSearch,(Len(strSearch)-Len(strLeft)-1))
SelectCasestrLeft
Case"SKU"intArrayY=0
Case"description"intArrayY=1
Case"price"intArrayY=2
Case"quantity"intArrayY=3
EndSelect
IntArrayX=strRight
IfstrOkay〈>"N"Then
TheArray(intArrayY,intArrayX)=strValue
EndIf
EndIf
Next
%>
  如今入手下手创立文件。关于激活的文件,用变量rngCurrent设置MicrosoftWord文件工具RANGE(为了避免用户翻开另外一个文件),经由过程指定表格的地位(rngCurrent)和行、列的数量来断定其巨细。


〈%
SetrngCurrent=objWordDoc.Application.ActiveDocument.Content
SettabCurrent=ObjWordDoc.Application.ActiveDocument.Tables.Add
rngCurrent,intNumrows,4)
%>
  创立了有表格的文件以后,我们入手下手往表格中装进数据。起首指到第一行row(tabRow=1),然落后行逐行轮回。在每行开头处拔出回车[Chr(10)],以便发生行间空行,最初增添行计数器,用“FormatCurrency”输入美圆值以包管利用$标记、逗号、小数点的地位。经由过程在
“ParagraphAlignment=2”处设置栏数来完成美圆数目的准确调剂。用VBA简单一些,不象用VBScript那样难。


〈%
Forj=1tointTableRows

ObjWordDoc.Application.ActiveDocument.Tables(1).Rows(tabRow).Borders.Enable=False

objWordDoc.Application.ActiveDocument.Tables(1).Rows(tabRow).Cells(1).Range.InsertAfter
theArray(1,j)

objWordDoc.Application.ActiveDocument.Tables(1).Rows(tabRow).Cells(2).Range.InsertAfter
theArray(2,j)

objWordDoc.Appli</p>asp,jsp,php是web开发的三大技术,asp简单易用且有microsoft做靠山,jsp功能强大是因为有java支持,php则开源跨平台.在国内,asp应用范围最广,jsp发展势头最猛,php则处于劣势.这可能与公司的支持以及技术的培训有关.
莫相离 该用户已被删除
沙发
发表于 2015-1-20 06:24:13 | 只看该作者
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
小魔女 该用户已被删除
板凳
发表于 2015-1-28 21:48:38 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
地板
发表于 2015-1-30 14:24:15 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
深爱那片海 该用户已被删除
5#
发表于 2015-2-1 10:03:20 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
精灵巫婆 该用户已被删除
6#
发表于 2015-2-7 02:38:25 | 只看该作者
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
不帅 该用户已被删除
7#
发表于 2015-2-19 21:22:19 | 只看该作者
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
若相依 该用户已被删除
8#
发表于 2015-3-6 15:39:00 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
蒙在股里 该用户已被删除
9#
发表于 2015-3-13 03:37:26 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
愤怒的大鸟 该用户已被删除
10#
发表于 2015-3-20 11:29:29 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-4 02:09

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表