源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 400|回复: 12

[编程10000问] 如何创建Word文件?

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2006-11-16 00:00:00 | 显示全部楼层 |阅读模式

creatdoc.asp

<!DOCTYPE html PUBLIC "-//W3C/Dtd html 3.2 Final//EN">
<head>
<title>星河影动之创建Word文件</title>
<META HTTP-EQUIV="Refresh" CONTENT="30;URL='orderForm.asp'">
</head>
<%
    dotLocation="'servernamedirectory    heTemplate.dot'"
    intRowCount = Request.Form("rowCount") 

' 初始化行计数.
%>
<body Language="VBScript" onLoad="creatdoc document.theForm,
<%=dotLocation%>,intRowCount>
<FORM NAME="theForm">

-----------------------------------------------------------------------------------------------------------------------------------

在body标记中对onLoad调用,调用creatdoc VB脚本子程序,向它传递3个参数:页面中表单的内容(所有的隐含域)、Word模板文件的位置、从输入表单中收到的行数.读所有的输入表单域,然后当页面装载后调用creatdoc子程序
<%
    itemCount = 0                           

' 设置域计数器为0.
    For Each Item in Request.Form           

' 总计表格域.
    itemCount = itemCount + 1           

' 使用For..Next 循环.

%>
    <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) %>
-------------------------------------------------------------------------------------------------------------------------------------

开始检查所有的表单行.在所有输入的网页表单域中循环,收集每个表单域名及其相应的值.逐个检查并将其放入相应的数列元素内.在此,我们使用了不确定编码的CASE选择
<%
For intCount = 0 to frmData.fieldCount.value
  strOkay = "Y"
  strSearch = frmData.elements(intCount).name 

' 装入表单域名.
  strValue = frmData.elements(intCount).value 

' 装入表单域值.
  strPosition = Instr(1,strSearch,"_")         

intStringLen=strPosition-1
  If intStrLen > 0 Then
      strLeft = Left(strSearch,intStringLen)
      strRight = Right(strSearch,(Len(strSearch)-Len(strLeft)-1))
      Select Case strLeft

' Select Case命令决定表单域属于哪一列.
        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
%>

-------------------------------------------------------------------------------------------------------------------------------------

开始创建文件
<%
    Set rngCurrent = objWordDoc.Application.ActiveDocument.Content

' 对于激活的文件,用变量rngCurrent设置Word文件对象RANGE,这是为了防止用户打开另一个文件.
    Set tabCurrent =  ObjWordDoc.Application.ActiveDocument.Tables.Add
    rngCurrent,intNumrows,4)

   ' 通过指定表格的位置( rngCurrent)以及行、列的数目来确定其大小.

%>

------------------------------------------------------------------------------------------------------------------------------------  
向往表格里装入数据.

<%
For j = 1 to intTableRows
 ' 首先指到第一行row(tabRow=1), 逐行循环.在每行结尾处插入回车[Chr(10)],以产生行间空行,使行计数器增加.
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))
    ' 用FormatCurrency 输出美圆值以保证使用$符号,逗号,小数点的位置.

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
    ' 在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
%>

------------------------------------------------------------------------------------------------------------------------------------

 

 

 

回复

使用道具 举报

1

主题

2万

回帖

182

积分

注册会员

Rank: 2

积分
182
发表于 2024-3-19 20:58:47 | 显示全部楼层
借款金额看了就立刻
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

67

积分

注册会员

Rank: 2

积分
67
发表于 2024-4-2 21:04:57 | 显示全部楼层
我要金豆金豆金豆
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-5-6 01:42:07 | 显示全部楼层
看到这帖子真是高兴!
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

79

积分

注册会员

Rank: 2

积分
79
发表于 2024-7-12 18:07:53 | 显示全部楼层
还可以不错
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

55

积分

注册会员

Rank: 2

积分
55
发表于 2024-7-27 23:32:44 | 显示全部楼层
1312315458748777
回复 支持 反对

使用道具 举报

11

主题

2万

回帖

300

积分

中级会员

Rank: 3Rank: 3

积分
300
发表于 2024-8-12 19:49:13 | 显示全部楼层
刷屏刷屏刷屏
回复 支持 反对

使用道具 举报

1

主题

1万

回帖

51

积分

注册会员

Rank: 2

积分
51
发表于 2024-9-3 18:26:37 | 显示全部楼层
刷屏刷屏刷屏
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-9-26 07:33:38 | 显示全部楼层
来看看怎么样
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-9-30 02:45:36 | 显示全部楼层
好东西一定要看看!
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-22 16:34 , Processed in 0.221186 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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