关于Word文档的编辑?

boboplayer 2002-05-29 12:38:15
请各位提供一些关于掉用Word文档进行编辑的资料(既调用一Word文档后,可以进行修改,保存和另存为)!100分相送!!!
...全文
47 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
boboplayer 2002-06-03
  • 打赏
  • 举报
回复
谢谢各位的帮助!在发该帖之前,我已经查看了所有CSDN关于用ASP处理WORD,EXECL 的处理方法,但都没有想得到的效果!在ASP的调用WORD,EXECEL的方法跟用VB的方法是类似的!!对一般的功能还能处理,但要到灵活的处理WORD,EXECEL还了解的太少!!!唉,没办法,现在正在用ASP做办公OA这方面,什么收发文,档案管理,还有什么手写笔之类的,有个没完的,头都大了!
不好意思,在此象各位发牢骚了:)
这个问题就暂时结帐吧!如各位同仁还有好的处理WORD.EXCEL技术方法,请继续跟贴,本人双倍分奉送!!
phoenixlj 2002-05-31
  • 打赏
  • 举报
回复
我现在正为这件事而困扰,请高手尽情指教!谢谢!
zhenhao 2002-05-31
  • 打赏
  • 举报
回复
用ASP创建Microsoft Word 文件


随着人们对数据库及动态HTML (DHTML)的应用和对XML的兴趣的增加,所以在商业网站的数据中使用动态内容变得越来越普遍。这里我们就成功运用了一则最新的技巧——用ASP创建 Word 文件,我想您看后肯定会受到很大的启发。
原文出处:http://www.asptoday.com/articles/19990825.htm

   背景

   BuildDoc.asp是一个ASP文件,它读入一个网页表单的输出,并创建一个Microsoft Word文件作为输出, 其中包含根据表单内数据改变产生的一个表格。表单内容不再局限于静态信息。也就是说, 表单中所显示的内容可能随着用户的交互作用而改变。




  
   BuildDoc所满足的商业需求是:根据销售人员网页列表变化的记录,建立表单信件。只有被销售人员修改过的数据才被发送到Word, 在那里这些数据被格式化到表格中。

   BuildDoc读入表单上的所有信息,识别被改变的行,然后用被改变的行中包含的信息来创建一个 Microsoft Word文件。BuildDoc使用一个模板文件(buildDoc.dot),其中包含地址头和一些预先格式化的文本。然后向文件中写入一个表格,其中的每一行都对应与网页表单中被修改过的一行。




  
   怎么做?

   开始时,将所有的网页表单域读入接收网页的隐含表单域中。在下面的源代码中,请注意在Body标记中对“onLoad”的调用。它调用buildDoc VB脚本子程序,向它传递3个参数:页面中表单的内容(所有的隐含域)、Word模板文件的位置、从输入表单中收到的行数。读所有的输入表单域,然后当页面装载后调用buildDoc子程序。为了简短起见,这里假定所有变量在使用之前都已被声明:

   buildDoc.asp中装载输入表单域的代码如下:


〈!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 3.2 Final//EN">
〈HEAD>
〈TITLE>Build Document〈/TITLE>
〈META HTTP-EQUIV="Refresh" CONTENT="30;URL='orderForm.asp'">
〈/HEAD>
〈%
dotLocation="'servernamedirectory heTemplate.dot'"
intRowCount = Request.Form("rowCount") 'initialize a row counter
%>
〈BODY Language="VBScript" onLoad="buildDoc document.theForm,
〈%=dotLocation%>,intRowCount>
〈FORM NAME="theForm">
〈%
itemCount = 0 'set field counter to zero
For Each Item in Request.Form 'count up the form fields
itemCount = itemCount + 1 'using For..Next loop
%>
〈INPUT TYPE="hidden" NAME="〈%=Item%>" VALUE="〈%=Request(Item)%>">
〈% Next %>
〈INPUT TYPE="hidden" NAME="numbRows" VALUE="〈%=intRowCount%>">
〈INPUT TYPE="hidden" NAME="fieldCount" VALUE="〈%=itemCount%>">
〈/FORM>
〈/BODY>
〈/HTML>
   用下面例子中的代码来创建一个Word 文件对象。请注意在Internet Explorer 4+中,要将浏览器的安全性设置为Low或 Custom,以能使应用程序运行成功。


〈%
Set objWordDoc = CreateObject("Word.Document")
ObjWordDoc.Application.Documents.Add theTemplate, False
ObjWordDoc.Application.Visible=True
%>
   调整数组的维数使它与网页表单所包含的行数相同。这时,将Y轴设为4个常量,这是输出文件中所需要 的栏数。X轴包含从表单中接收的行数。

〈% Redim Preserve theArray(4,intTableRows) %>

   现在开始检查所有的表单行。在所有输入的网页表单域中循环,收集每个表单域名及其相应的值。逐个检查以决定将其放入哪个数列元素内,然后将其放入。以下举例代码中的SELECT CASE命令很重要,这决定表单域属于哪一列。为了方便,使用不确定编码的CASE选择。


〈%
For intCount = 0 to frmData.fieldCount.value
strOkay = "Y"
strSearch = frmData.elements(intCount).name 'load the field name
strValue = frmData.elements(intCount).value 'load the field value
strPosition = Instr(1,strSearch,"_") 'get pos val of "_"
intStringLen=strPosition-1
If intStrLen > 0 Then
strLeft = Left(strSearch,intStringLen)
strRight = Right(strSearch,(Len(strSearch)-Len(strLeft)-1))
Select Case strLeft
Case "SKU" intArrayY=0
Case "description" intArrayY=1
Case "price" intArrayY=2
Case "quantity" intArrayY=3
End Select
IntArrayX = strRight
If strOkay 〈> "N" Then
TheArray(intArrayY, intArrayX) = strValue
End If
End If
Next
%>
   现在开始创建文件。对于激活的文件,用变量rngCurrent设置Microsoft Word文件对象RANGE(为了防止用户打开另一个文件),通过指定表格的位置( rngCurrent)以及行、列的数目来确定其大小。


〈%
Set rngCurrent = objWordDoc.Application.ActiveDocument.Content
Set tabCurrent = ObjWordDoc.Application.ActiveDocument.Tables.Add
rngCurrent,intNumrows,4)
%>
   创建了有表格的文件之后,我们开始往表格中装入数据。首先指到第一行row(tabRow=1 ), 然后进行逐行循环。在每行结尾处插入回车[Chr(10)],以便产生行间空行,最后增加行计数器,用“FormatCurrency” 输出美圆值以保证使用$符号、逗号、小数点的位置。通过在
“ParagraphAlignment=2”处设置栏数来实现美圆数量的正确调整。用VBA容易一些,不象用VBScript那样难。


〈%
For j = 1 to intTableRows

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.Application.ActiveDocument.Tables(1).Rows(tabRow).Cells(3).Range.InsertAfter
FormatCurrency(theArray(3,j))

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

objWordDoc.Application.ActiveDocument.Tables(1).Rows(tabRow).Cells(4).Range.InsertAfter
Chr(10)

objWordDoc.Applicatoin.ActiveDocument.Tables(1).Rows(tabRow).Cells(3).
Range.ParagraphFormat.alignment=2

tabRow = tabRow + 1

Next
%>
   最后用一些收尾性的文字来结束文件,指定模板位置,然后结束子程序。


〈%
objWordDoc.Application.ActiveDocument.Paragraph.Add.Range.
InsertAfter("Thank you for shopping at Acme Co., and please come again!")
objWordDoc.Application.ActiveDocument.Paragraph.Add.Range.InsertAfter(" ")
objWordDoc.Application.ActiveDocument.Paragraph.Add.Range.InsertAfter(" ")
objWordDoc.Application.ActiveDocument.Paragraph.Add.Range.InsertAfter("Regards,")
objWordDoc.Application.ActiveDocument.Paragraph.Add.Range.InsertAfter(" ")
objWordDoc.Application.ActiveDocument.Paragraph.Add.Range.
InsertAfter("Daryl B. Morticum")
objWordDoc.Application.ActiveDocument.Paragraph.Add.Range.
InsertAfter("Sales Associate")
End Sub
%>
   希望对你做相同的工作能有一些帮助。
sduwjr 2002-05-31
  • 打赏
  • 举报
回复
同意,请考虑实际情况再决定是否需要
ChinaOk 2002-05-31
  • 打赏
  • 举报
回复
很多时候,麻烦而低效
孟子E章 2002-05-29
  • 打赏
  • 举报
回复
下面的方法举例说明了在HTML页面里如何调用本机的应用程序MS-WORD,并把它置为编辑状态:

<HTML>
<script>
var wrd=new ActiveXObject("Word.Application")
wrd.visible=true
alert("您的"+wrd.Application.Caption+"安装路径为:\n"+wrd.Application.Path+"\n版本号是:"+wrd.Application.version+"\n注册使用者是:"+wrd.Application.UserName)
wrd.Documents.Add()
//wrd.Documents.Open("c:\\exam.doc")
wrd.Selection.TypeText("This is some text.")
wrd.Application.Activate()
wrd.ActiveDocument.SaveAs("c:\\exam111.doc")
wrd=null
</script>
</HTML>
MeXP 2002-05-29
  • 打赏
  • 举报
回复
看看专题http://www.csdn.net/Subject/15/index.shtm

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧