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