ot; value="打印"> //点击“打印”按钮,调用vbscript函数buildDoc生成本地Word文档,实现本地打印。
</html>
//以下VBScript代码实现buildDoc函数
<script language="vbscript">
Sub buildDoc
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的对象
Dim theArray(10,10000) //定义数组变量,存放表格中的数据,10是虚拟列数,10000是虚拟行数
//以下两层for循环将html文档的表格中的纯文本数据赋值给数组
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
End Sub
</script>
5、 结束语
以上程序在Windows2000及IIS5.0下运行通过,数据库采用Access2000。执行打印之前,需要将浏览器的安全级别设为低,或在中级安全级别下将ActiveX控件设为启用。该方法的优点在于实现统计报表十分简单,调用Word打印非常方便,并且可以按用户要求对表格属性进行设置;不足之处是需要调节浏览器的安全设置,且不支持图片和特殊字体的打印,同时客户端必须安装Microsoft Word软件。
参考文献:
[1]《Active Server Page & WEB数据库》,王国荣著,人民邮电出版社,2000。
[2] MSDN Library Visual Basic文档
参考网址:
动感教育网 www.activeedu.net
</html>
//以下VBScript代码实现buildDoc函数
<script language="vbscript">
Sub buildDoc
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的对象
Dim theArray(10,10000) //定义数组变量,存放表格中的数据,10是虚拟列数,10000是虚拟行数
//以下两层for循环将html文档的表格中的纯文本数据赋值给数组
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
End Sub
</script>
5、 结束语
以上程序在Windows2000及IIS5.0下运行通过,数据库采用Access2000。执行打印之前,需要将浏览器的安全级别设为低,或在中级安全级别下将ActiveX控件设为启用。该方法的优点在于实现统计报表十分简单,调用Word打印非常方便,并且可以按用户要求对表格属性进行设置;不足之处是需要调节浏览器的安全设置,且不支持图片和特殊字体的打印,同时客户端必须安装Microsoft Word软件。
参考文献:
[1]《Active Server Page & WEB数据库》,王国荣著,人民邮电出版社,2000。
[2] MSDN Library Visual Basic文档
参考网址:
动感教育网 www.activeedu.net
| 对此文章发表了评论 |
