ASP生成Word文档的又一方法

在网上,利用Asp生成Word文档的方法实在不少,最常见到的方法就是利用Word生成.dot的文档,再用Asp向.dot文档中传递宏,这种方法虽好,但实现起来非常复杂,而且不能循环生成表格。

在实际应用中,我总结出来一种新的生成Word文件的方法,生成的Word文件有页眉、页角,现拿出一例与大家探讨。

实现:

我的解决办法,用Word XP(其他版本还没有试过)制作表格,将做好的Word表格转换为HTML文档,在用ASP控制转换后HTML文档。

页眉、页角的解决办法,在转换带Word页眉、页角的DOC文档后会在转换的HTML文件附加一个文件夹,内有页眉、页角文件及图片,只要在HTML文件的相应位置改变其路径为服务器路径即可。用户打开并ASP生成的Word文件后,Word会自动提示将这些文件保存。

看下面的Word转换后的HTML文,我用ASP加以简单控制:

1 Response.ContentType = "application/msword" 
1response.buffer=false   
2response.expires=0   
3call Check_Logout()   
4call check_state()   
5call Privilege(6)   
6call Log_Action("访问","销售编号打印","打印临时销售编号"&request("Temp_Id"),1)

%>

  1<html ;="" xmlns="http://www.w3.org/TR/REC-html40" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word">
  2<head>
  3<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
  4<meta content="Word.Document" name="ProgId"/>
  5<meta content="Microsoft Word 10" name="Generator"/>
  6<meta content="Microsoft Word 10" name="Originator"/>
  7<link href="create_doc/filelist.xml" rel="File-List"/>
  8<link href="create_doc/editdata.mso" rel="Edit-Time-Data"/>
  9<link href="create_doc/oledata.mso" rel="OLE-Object-Data"/>
 10<!--[if gte mso 9]><xml>   
 11<o:DocumentProperties>   
 12<o:Author>Administrator</o:Author>   
 13<o:LastAuthor>Administrator</o:LastAuthor>   
 14<o:Revision>34</o:Revision>   
 15<o:TotalTime>26</o:TotalTime>   
 16<o:LastPrinted>2002-11-06T05:54:00Z</o:LastPrinted>   
 17<o:Created>2002-11-06T04:56:00Z</o:Created>   
 18<o:LastSaved>2002-11-06T05:55:00Z</o:LastSaved>   
 19<o:Pages>1</o:Pages>   
 20<o:Words>98</o:Words>   
 21<o:Characters>562</o:Characters>   
 22<o:Company>shine</o:Company>   
 23<o:Lines>4</o:Lines>   
 24<o:Paragraphs>1</o:Paragraphs>   
 25<o:CharactersWithSpaces>659</o:CharactersWithSpaces>   
 26<o:Version>10.2625</o:Version>   
 27</o:DocumentProperties>   
 28</xml><![endif]--><!--[if gte mso 9]><xml>   
 29<w:WordDocument>   
 30<w:View>Print</w:View>   
 31<w:SpellingState>Clean</w:SpellingState>   
 32<w:GrammarState>Clean</w:GrammarState>   
 33<w:Compatibility>   
 34<w:UseFELayout/>   
 35</w:Compatibility>   
 36<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>   
 37</w:WordDocument>   
 38</xml><![endif]-->
 39<style>   
 40<!--   
 41/* Font Definitions */   
 42@font-face   
 43{font-family:宋体;   
 44panose-1:2 1 6 0 3 1 1 1 1 1;   
 45mso-font-alt:SimSun;   
 46mso-font-charset:134;   
 47mso-generic-font-family:auto;   
 48mso-font-pitch:variable;   
 49mso-font-signature:3 135135232 16 0 262145 0;}   
 50@font-face   
 51{font-family:"\@宋体";   
 52panose-1:2 1 6 0 3 1 1 1 1 1;   
 53mso-font-charset:134;   
 54mso-generic-font-family:auto;   
 55mso-font-pitch:variable;   
 56mso-font-signature:3 135135232 16 0 262145 0;}   
 57/* Style Definitions */   
 58p.MsoNormal, li.MsoNormal, div.MsoNormal   
 59{mso-style-parent:"";   
 60margin:0cm;   
 61margin-bottom:.0001pt;   
 62mso-pagination:widow-orphan;   
 63font-size:12.0pt;   
 64font-family:宋体;   
 65mso-bidi-font-family:宋体;}   
 66p.MsoHeader, li.MsoHeader, div.MsoHeader   
 67{margin:0cm;   
 68margin-bottom:.0001pt;   
 69text-align:center;   
 70mso-pagination:widow-orphan;   
 71tab-stops:center 207.65pt right 415.3pt;   
 72layout-grid-mode:char;   
 73border:none;   
 74mso-border-bottom-alt:solid windowtext .75pt;   
 75padding:0cm;   
 76mso-padding-alt:0cm 0cm 1.0pt 0cm;   
 77font-size:9.0pt;   
 78font-family:宋体;   
 79mso-bidi-font-family:宋体;}   
 80p.MsoFooter, li.MsoFooter, div.MsoFooter   
 81{margin:0cm;   
 82margin-bottom:.0001pt;   
 83mso-pagination:widow-orphan;   
 84tab-stops:center 207.65pt right 415.3pt;   
 85layout-grid-mode:char;   
 86font-size:9.0pt;   
 87font-family:宋体;   
 88mso-bidi-font-family:宋体;}   
 89span.GramE   
 90{mso-style-name:"";   
 91mso-gram-e:yes;}   
 92@page Section1   
 93{size:595.3pt 841.9pt;   
 94margin:44.95pt 90.0pt 72.0pt 90.0pt;   
 95mso-header-margin:42.55pt;   
 96mso-footer-margin:49.6pt;   
 97''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''   
 98'***********************************************************************   
 99'页眉页角的位置   
100'***********************************************************************   

DocPath="http://";&request.ServerVariables("Remote_Host")&"/bacmda/create_doc/"

 1mso-header:url("```
 2=DocPath
 3```header.htm") h1;   
 4mso-footer:url("```
 5=DocPath
 6```header.htm") f1;   
 7mso-paper-source:0;}   
 8div.Section1   
 9{page:Section1;}   
10\-->   
11</style>
12<!--[if gte mso 10]>   
13<style>   
14/* Style Definitions */   
15table.MsoNormalTable   
16{mso-style-name:普通表格;   
17mso-tstyle-rowband-size:0;   
18mso-tstyle-colband-size:0;   
19mso-style-noshow:yes;   
20mso-style-parent:"";   
21mso-padding-alt:0cm 5.4pt 0cm 5.4pt;   
22mso-para-margin:0cm;   
23mso-para-margin-bottom:.0001pt;   
24mso-pagination:widow-orphan;   
25font-size:10.0pt;   
26font-family:"Times New Roman";   
27mso-fareast-font-family:"Times New Roman";}   
28table.MsoTableGrid   
29{mso-style-name:网格型;   
30mso-tstyle-rowband-size:0;   
31mso-tstyle-colband-size:0;   
32border:solid windowtext 1.0pt;   
33mso-border-alt:solid windowtext .5pt;   
34mso-padding-alt:0cm 5.4pt 0cm 5.4pt;   
35mso-border-insideh:.5pt solid windowtext;   
36mso-border-insidev:.5pt solid windowtext;   
37mso-para-margin:0cm;   
38mso-para-margin-bottom:.0001pt;   
39mso-pagination:widow-orphan;   
40font-size:10.0pt;   
41font-family:"Times New Roman";}   
42</style>   
43<![endif]--><!--[if gte mso 9]><xml>   
44<o:shapedefaults v:ext="edit" spidmax="5122"/>   
45</xml><![endif]--><!--[if gte mso 9]><xml>   
46<o:shapelayout v:ext="edit">   
47<o:idmap v:ext="edit" data="1"/>   
48</o:shapelayout></xml><![endif]-->
49</head>
50<body lang="ZH-CN" style="tab-interval:21.0pt">
51<div class="Section1">   

set rs=server.createobject("ADODB.RecordSet")
sql="select * from T_Temp where Temp_ID="&amp;request("Temp_Id")
rs.open sql,cstr(conn),1,1
SearchDate=rs("CreateTime")
rs.close
sql="select * from T_TempReadnews where R_Temp_Id="&amp;request("Temp_Id")&amp;" Order by TempReadnews_Id DESC"
rs.open sql,cstr(conn),1,1

 1<p class="MsoNormal"><b style="mso-bidi-font-weight:normal"><span lang="EN-US" style="font-size:10.5pt"><o:p> </o:p></span></b></p>
 2<p align="center" class="MsoNormal" style="text-align:center;line-height:175%"><b><span style="font-size:16.0pt;mso-bidi-font-size:12.0pt;line-height:175%">阅报栏媒体查询单</span></b><b><span lang="EN-US" style="font-size:9.0pt;line-height:175%"><o:p></o:p></span></b></p>
 3<p align="center" class="MsoNormal" style="text-align:center;line-height:175%"><b><span lang="EN-US" style="font-size:9.0pt;line-height:175%"><o:p> </o:p></span></b></p>
 4<p class="MsoNormal" style="line-height:150%"><b><span style="font-size:10.5pt">查询编号:<u><span lang="EN-US"><span style="mso-spacerun:yes"> </span><span style="mso-spacerun:yes">```
 5=request("Temp_Id")
 6``` </span><span style="mso-spacerun:yes"> </span></span></u><span lang="EN-US"><span style="mso-spacerun:yes"> </span>查询日期:<u>
 7<span style="mso-spacerun:yes;font-size:10.5pt"> </span><span style="mso-spacerun:yes">```
 8=SearchDate
 9``` </span></u>_<o:p></o:p></span></span></b></p>
10<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;   
11mso-yfti-tbllook:480;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;mso-border-insideh:   
12.5pt solid windowtext;mso-border-insidev:.5pt solid windowtext">
13<tr style="mso-yfti-irow:0;height:17.25pt">
14<td style="width:53.25pt;border:solid windowtext 1.0pt;mso-border-alt:   
15solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt;height:17.25pt" width="71">
16<p align="center" class="MsoNormal" style="text-align:center"><b style="mso-bidi-font-weight:normal"><span style="font-size:9.0pt">日报编号<span lang="EN-US"><o:p></o:p></span></span></b></p>
17</td>
18<td style="width:42.15pt;border:solid windowtext 1.0pt;border-left:   
19none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;   
20padding:0cm 5.4pt 0cm 5.4pt;height:17.25pt" width="56">
21<p align="center" class="MsoNormal" style="text-align:center"><b style="mso-bidi-font-weight:normal"><span style="font-size:9.0pt">区域<span lang="EN-US"><o:p></o:p></span></span></b></p>
22</td>
23<td style="width:54.0pt;border:solid windowtext 1.0pt;border-left:   
24none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;   
25padding:0cm 5.4pt 0cm 5.4pt;height:17.25pt" width="72">
26<p align="center" class="MsoNormal" style="text-align:center"><b style="mso-bidi-font-weight:normal"><span style="font-size:9.0pt">路段名<span lang="EN-US"><o:p></o:p></span></span></b></p>
27</td>
28<td style="width:27.0pt;border:solid windowtext 1.0pt;border-left:   
29none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;   
30padding:0cm 5.4pt 0cm 5.4pt;height:17.25pt" width="36">
31<p align="center" class="MsoNormal" style="text-align:center"><b style="mso-bidi-font-weight:normal"><span lang="EN-US" style="font-size:9.0pt">L/R<o:p></o:p></span></b></p>
32</td>
33<td style="width:36.0pt;border:solid windowtext 1.0pt;border-left:   
34none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;   
35padding:0cm 5.4pt 0cm 5.4pt;height:17.25pt" width="48">
36<p align="center" class="MsoNormal" style="text-align:center"><b style="mso-bidi-font-weight:normal"><span style="font-size:9.0pt">形式<span lang="EN-US"><o:p></o:p></span></span></b></p>
37</td>
38<td style="width:36.0pt;border:solid windowtext 1.0pt;border-left:   
39none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;   
40padding:0cm 5.4pt 0cm 5.4pt;height:17.25pt" width="48">
41<p align="center" class="MsoNormal" style="text-align:center"><b style="mso-bidi-font-weight:normal"><span style="font-size:9.0pt">级别<span lang="EN-US"><o:p></o:p></span></span></b></p>
42</td>
43<td style="width:141.7pt;border:solid windowtext 1.0pt;border-left:   
44none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;   
45padding:0cm 5.4pt 0cm 5.4pt;height:17.25pt" width="189">
46<p align="center" class="MsoNormal" style="text-align:center"><b style="mso-bidi-font-weight:normal"><span style="font-size:9.0pt">详细位置<span lang="EN-US"><o:p></o:p></span></span></b></p>
47</td>
48</tr>   

set rs1=server.createobject("ADODB.RecordSet")
do while not rs.eof
sql1="select * from T_Readnews where Readnews_Id="&amp;rs("R_Readnews_Id")
rs1.open sql1,cstr(conn),1,1

 1<tr style="mso-yfti-irow:1;mso-yfti-lastrow:yes;height:15.0pt">
 2<td style="width:53.25pt;border:solid windowtext 1.0pt;border-top:   
 3none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;   
 4padding:0cm 5.4pt 0cm 5.4pt;height:15.0pt" width="71">
 5<p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="font-size:9.0pt">```
 6=rs1("DailyNumber")
 7```071<o:p></o:p></span></p>
 8</td>
 9<td style="width:42.15pt;border-top:none;border-left:none;   
10border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;   
11mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;   
12mso-border-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt;height:15.0pt" width="56">
13<p align="center" class="MsoNormal" style="text-align:center"><span style="font-size:9.0pt">```
14=Area(rs1("Area"))
15```<span lang="EN-US"><o:p></o:p></span></span></p>
16</td>
17<td style="width:54.0pt;border-top:none;border-left:none;border-bottom:   
18solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;mso-border-top-alt:   
19solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:   
20solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt;height:15.0pt" width="72">
21<p align="center" class="MsoNormal" style="text-align:center"><span style="font-size:9.0pt">```
22=rs1("RoadName")
23```<span lang="EN-US"><o:p></o:p></span></span></p>
24</td>
25<td style="width:27.0pt;border-top:none;border-left:none;border-bottom:   
26solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;mso-border-top-alt:   
27solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:   
28solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt;height:15.0pt" width="36">
29<p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="font-size:9.0pt">```
30=LeftRight1(rs1("LeftRight"))
31```<o:p></o:p></span></p>
32</td>
33<td style="width:36.0pt;border-top:none;border-left:none;border-bottom:   
34solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;mso-border-top-alt:   
35solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:   
36solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt;height:15.0pt" width="48">
37<p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="font-size:9.0pt">```
38=rs1("Form")
39```<o:p></o:p></span></p>
40</td>
41<td style="width:36.0pt;border-top:none;border-left:none;border-bottom:   
42solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;mso-border-top-alt:   
43solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:   
44solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt;height:15.0pt" width="48">
45<p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="font-size:9.0pt">```
46=rs1("PlaceLevel")
47```<o:p></o:p></span></p>
48</td>
49<td style="width:141.7pt;border-top:none;border-left:none;   
50border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;   
51mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;   
52mso-border-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt;height:15.0pt" width="189">
53<p align="center" class="MsoNormal" style="text-align:center"><span class="GramE"><span style="font-size:9.0pt">```
54=rs1("PAddress")
55```</span></span></p>
56</td>
57</tr>   

rs1.close
rs.movenext
loop
rs.close
sql="select * from T_Temp where Temp_Id="&amp;request("Temp_Id")
rs.open sql,cstr(conn),1,1
User_Id=rs("R_User_Id")
rs.close
sql="select * from T_User where User_Id="&amp;User_Id
rs.open sql,cstr(conn),1,1
UserName=rs("TrueName")
rs.close
set rs=nothing
set rs1=nothing

 1</table>
 2<p></p>
 3<p align="right" class="MsoNormal" style="text-align:right;"><b><span style="font-size:9.0pt">销售人</span></b><span style="font-size:9.0pt">:<span lang="EN-US">```
 4=UserName
 5``` <b>制表时间</b>:```
 6=Now
 7```</span></span><span lang="EN-US"> </span><span lang="EN-US" style="font-size:9.0pt"><o:p></o:p></span></p>
 8</div>
 9</body>
10</html>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus