打印本文 打印本文 关闭窗口 关闭窗口
用asp生成word文档打印的方法
作者:武汉SEO闵涛  文章来源:本站原创  点击数2495  更新时间:2011/10/13 14:24:41  文章录入:mintao  责任编辑:mintao
用asp生成word文档打印的方法
以下是代码片段:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="Content-Language" content="zh-cn">
</head>
<p align="center"><b>用户信息</b>
<div align="left">
<table id="data" cellpadding="0" cellspacing="0" width="100%" ,border="1" border="1">
<tr>
<td width="50%"><p align="center">姓名</td>
<td width="50%"><p align="center">职业</td>
</tr>
<tr>
<td width="50%"><p align="center">xjb</td>
<td width="50%"><p align="center">程序员</td>
</tr>
</table>
</div>
<p align="center">
<input type=button onclick="vbscript:buildDoc" value="打印">
<%''点击"打印"按钮,调用vbscript函数buildDoc生成本地Word文档,实现本地打印。%>
<script language="vbscript">
Sub buildDoc()
'定义数组变量,存放表格中的数据(开始数组没有具体大小,以后根据网页中的表格的实际大小通过redim确定数组大小)
Dim theArray()
set table = document.all.data '把html文档中的表格data的结构和数据赋值给table
row = table.rows.length 'row为table的行数
column = table.rows(1).cells.length 'colnum为table的列数
Set objWordDoc =CreateObject("Word.Document") '创建一个Word.Document的对象
'Set objWordDoc=CreateObject("Word.Document.8")
'Set objWordapp= CreateObject("Word.Application")
'objWordapp.Application.Visible = true
'set objWordDoc= new objWordapp.Documents.Add("",0,1)
objWordDoc.Application.visible=true
redim theArray(column,row) '根据网页中的表格的实际大小重新确定数组theArray的大小
'以下两层for循环将html文档的表格中的纯文本数据赋值给数组。
'VB数组从1开始而且为先行后列。而表格数组从0开始且先列后行
for i=0 to row-1
for j=0 to column-1
theArray(j+1,i+1) = table.rows(i).cells(j).innerTEXT
next
next
objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("公司员工统计表")'显示表格标题
objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("") '输出标题后回车换行
Set rngPara = objWordDoc.Application.ActiveDocument.Paragraphs(1).Range

'以下With代码段设置标题属性
With rngPara

.Bold = True '将标题设为粗体
.ParagraphFormat.Alignment = 1 '将标题居中
.Font.Name = "Arial" '设定标题字体
.Font.Size = 12 '设定标题字体大小
End With

Set rngCurrent = objWordDoc.Application.ActiveDocument.Paragraphs(3).Range

Set tabCurrent = ObjWordDoc.Application.ActiveDocument.Tables.Add(rngCurrent,row,column)

'以下for循环输出表头
for i = 1 to column
objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.InsertAfter theArray(i,1)
objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.ParagraphFormat.alignment=1
next

'以下两层for循环输出表格实际内容
For i =1 to column
For j = 2 to row
objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.InsertAfter theArray(i,j)
objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.ParagraphFormat.alignment=1
Next
Next
objWordDoc.Application.ActiveDocument.SaveAs
msgbox "输出到word成功"
End Sub
</script>  

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