ASP操作word文档

sub   html2word(wTitle)  
  dim   chtml  
   
  rel="<TABLE   style='BORDER-RIGHT:   medium   none;   BORDER-TOP:   medium   none;   FONT-SIZE:   9pt;   BORDER-LEFT:   medium   none;   WIDTH:   100%;   BORDER-BOTTOM:   medium   none;   BORDER-COLLAPSE:   collapse;   mso-border-alt:   solid   windowtext   .5pt;   mso-padding-alt:   0cm   5.4pt   0cm   5.4pt;'   cellSpacing=0   cellPadding=0   width=100%   border=1>"  
   
   
  chtml=tableid.innerHTML  
   
  set   a=new   regexp  
  a.Pattern="(<table)[^>]*>"  
  a.IgnoreCase=true  
  a.global=false  
  chtml=a.Replace(chtml,rel)  
   
  a.global=true  
   
  a.pattern="(<tr)[^>]*>"  
  chtml=a.replace(chtml,"<tr>")  
   
  'a.pattern="(<td)[^>]*[()]*>"  
  'chtml=a.replace(chtml,"<td>")  
   
  'msgbox(chtml)  
   
  a.pattern="(<a)[^>]*>"  
  chtml=a.replace(chtml,"")  
   
  a.pattern="(</a)[^>]*>"  
  chtml=a.replace(chtml,"")  
  set   pw=window.open("","p","width=800,height=600,left=10000,top=10000")  
  pw.document.write("<center><b><u><font   size=5>"&wTitle&"</font></u></b></center><br>"&chtml)  
  pw.document.execCommand("selectall")  
  pw.document.execCommand("copy")  
  pw.close()  
   
  set   w=createobject("Word.Application")  
  w.visible=true  
  w.Documents.add()  
  w.selection.pastespecial()  
   
  end   sub  
   
   
  ======================================================  
  将你要导入word的部分用<div   id=tableid></div>包围起来   
 

 

 

 

完整例子    
  <HTML>  
  <HEAD>  
  <TITLE>   New   Document   </TITLE>  
  <META   NAME="Generator"   CONTENT="EditPlus">  
  <META   NAME="Author"   CONTENT="">  
  <META   NAME="Keywords"   CONTENT="">  
  <META   NAME="Description"   CONTENT="">  
  </HEAD>  
   
  <BODY>  
  <TABLE   id="data"   border="1">  
  <TR>  
  <TD><B>asdfaf</B></TD>  
  <TD><B>asfafaf</B></TD>  
  </TR>  
  <TR>  
  <TD>asdfaf</TD>  
  <TD>asfafaf</TD>  
  </TR>  
  </TABLE>  
  <input     type="button"     name="out_word"     onclick="vbscript:buildDoc"     value="导出到word"     class="notPrint">          
  <script     language="vbscript">      
  Sub     buildDoc      
  set     table     =     document.all.data      
  row     =     table.rows.length      
  column     =     table.rows(1).cells.length      
     
  Set     objWordDoc     =     CreateObject("Word.Document")      
     
  'objWordDoc.Application.Documents.Add     theTemplate,     False      
  objWordDoc.Application.Visible=True      
     
  Dim     theArray(20,10000)      
  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     rngPara      
                .Bold     =     True     //将标题设为粗体      
                .ParagraphFormat.Alignment     =     1     //将标题居中      
                .Font.Name     =     "隶书"     //设定标题字体      
                .Font.Size     =     18     //设定标题字体大小      
  End     With      
  Set     rngCurrent     =     objWordDoc.Application.ActiveDocument.Paragraphs(3).Range      
  Set     tabCurrent     =     ObjWordDoc.Application.ActiveDocument.Tables.Add(rngCurrent,row,column)      
     
  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     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      
     
  End     Sub      
  </SCRIPT>  
  </BODY>  
  </HTML>  

posted on 2009-01-16 09:17  西风飘雪  阅读(1131)  评论(0编辑  收藏  举报

导航