在网上,利用asp生成word文档的方法实在不少,最常见到的方法就是利用word生成.dot的文档,再用asp向.dot文档中传递宏,这种方法虽好,但实现起来非常复杂,而且不能循环生成表格。
在实际应用中,我总结出来一种新的生成word文件的方法,生成的word文件有页眉、页角,现拿出一例与大家探讨。
实现:
我的解决办法,用word xp(其他版本还没有试过)制作表格,将做好的word表格转换为html文档,在用asp控制转换后html文档。
页眉、页角的解决办法,在转换带word页眉、页角的doc文档后会在转换的html文件附加一个文件夹,内有页眉、页角文件及图片,只要在html文件的相应位置改变其路径为服务器路径即可。用户打开并asp生成的word文件后,word会自动提示将这些文件保存。
看下面的word转换后的html文,我用asp加以简单控制:
<% response.contenttype = "application/msword" %>
<!-- #include file="inc/conn_open.asp"-->
<!-- #include file="inc/transition.asp"-->
<!-- #include file="inc/check_character.asp"-->
<!-- #include file="inc/errormsg.asp"-->
<!-- #include file="inc/check_privilege.asp"-->
<!-- #include file="inc/check_logout.asp"-->
<!-- #include file="inc/system_log_action.asp"-->
<%response.buffer=false
response.expires=0
call check_logout()
call check_state()
call privilege(6)
call log_action("访问","销售编号打印","打印临时销售编号"&request("temp_id"),1)%>
%>
<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/tr/rec-html40";>
<head>
<meta http-equiv=content-type content="text/html; charset=gb2312">
<meta name=progid content=word.document>
<meta name=generator content="microsoft word 10">
<meta name=originator content="microsoft word 10">
<link rel=file-list href="create_doc/filelist.xml">
<link rel=edit-time-data href="create_doc/editdata.mso">
<link rel=ole-object-data href="create_doc/oledata.mso">
<!--[if gte mso 9]><xml>
<o:documentproperties>
<o:author>administrator</o:author>
<o:lastauthor>administrator</o:lastauthor>
<o:revision>34</o:revision>
<o:totaltime>26</o:totaltime>
<o:lastprinted>2002-11-06t05:54:00z</o:lastprinted>
<o:created>2002-11-06t04:56:00z</o:created>
<o:lastsaved>2002-11-06t05:55:00z</o:lastsaved>
<o:pages>1</o:pages>
<o:words>98</o:words>
<o:characters>562</o:characters>
<o:company>shine</o:company>
<o:lines>4</o:lines>
<o:paragraphs>1</o:paragraphs>
<o:characterswithspaces>659</o:characterswithspaces>
<o:version>10.2625</o:version>
</o:documentproperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:worddocument>
<w:view>print</w:view>
<w:spellingstate>clean</w:spellingstate>
<w:grammarstate>clean</w:grammarstate>
<w:compatibility>
<w:usefelayout/>
</w:compatibility>
<w:browserlevel>microsoftinte.netexplorer4</w:browserlevel>
</w:worddocument>
</xml><![endif]-->
<style>
<!--
/* font definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:simsun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
/* style definitions */
p.msonormal, li.msonormal, div.msonormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:宋体;
mso-bidi-font-family:宋体;}
p.msoheader, li.msoheader, div.msoheader
{margin:0cm;
margin-bottom:.0001pt;
text-align:center;
mso-pagination:widow-orphan;
tab-stops:center 207.65pt right 415.3pt;
layout-grid-mode:char;
border:none;
mso-border-bottom-alt:solid windowtext .75pt;
padding:0cm;
mso-padding-alt:0cm 0cm 1.0pt 0cm;
font-size:9.0pt;
font-family:宋体;
mso-bidi-font-family:宋体;}
p.msofooter, li.msofooter, div.msofooter
{margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:center 207.65pt right 415.3pt;
layout-grid-mode:char;
font-size:9.0pt;
font-family:宋体;
mso-bidi-font-family:宋体;}
span.grame
{mso-style-name:"";
mso-gram-e:yes;}
@page section1
{size:595.3pt 841.9pt;
margin:44.95pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:42.55pt;
mso-footer-margin:49.6pt;
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'***********************************************************************
'页眉页角的位置
'***********************************************************************
<%docpath="http://";&request.servervariables("remote_host")&"/bacmda/create_doc/"%>
mso-header:url("<%=docpath%>header.htm") h1;
mso-footer:url("<%=docpath%>header.htm") f1;
mso-paper-source:0;}
div.section1
{page:section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
/* style definitions */
table.msonormaltable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"times new roman";
mso-fareast-font-family:"times new roman";}
table.msotablegrid
{mso-style-name:网格型;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
border:solid windowtext 1.0pt;
mso-border-alt:solid windowtext .5pt;
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-border-insideh:.5pt solid windowtext;
mso-border-insidev:.5pt solid windowtext;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"times new roman";}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="5122"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
</o:shapelayout></xml><![endif]-->
</head>
<body lang=zh-cn style='tab-interval:21.0pt'>
<div class=section1>
<%set rs=server.createobject("adodb.recordset")
sql="select * from t_temp where temp_id="&request("temp_id")
rs.open sql,cstr(conn),1,1
searchdate=rs("createtime")
rs.close
sql="select * from t_tempreadnews where r_temp_id="&request("temp_id")&" order by tempreadnews_id desc"
rs.open sql,cstr(conn),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>
<p class=msonormal align=center 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>
<p class=msonormal align=center 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>
<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'><%=request("temp_id")%> </span><span
style='mso-spacerun:yes'> </span></span></u><span
lang=en-us><span style='mso-spacerun:yes'> </span>查询日期:<u>
<span style='mso-spacerun:yes;font-size:10.5pt'> </span><span
style='mso-spacerun:yes'><%=searchdate%> </span></u>_<o:p></o:p></span></span></b></p>
<table class=msotablegrid border=1 cellspacing=0 cellpadding=0
style='border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
mso-yfti-tbllook:480;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;mso-border-insideh:
.5pt solid windowtext;mso-border-insidev:.5pt solid windowtext'>
<tr style='mso-yfti-irow:0;height:17.25pt'>
<td width=71 style='width:53.25pt;border:solid windowtext 1.0pt;mso-border-alt:
solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt;height:17.25pt'>
<p class=msonormal align=center 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>
</td>
<td width=56 style='width:42.15pt;border:solid windowtext 1.0pt;border-left:
none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt;height:17.25pt'>
<p class=msonormal align=center 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>
</td>
<td width=72 style='width:54.0pt;border:solid windowtext 1.0pt;border-left:
none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt;height:17.25pt'>
<p class=msonormal align=center 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>
</td>
<td width=36 style='width:27.0pt;border:solid windowtext 1.0pt;border-left:
none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt;height:17.25pt'>
<p class=msonormal align=center 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>
</td>
<td width=48 style='width:36.0pt;border:solid windowtext 1.0pt;border-left:
none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt;height:17.25pt'>
<p class=msonormal align=center 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>
</td>
<td width=48 style='width:36.0pt;border:solid windowtext 1.0pt;border-left:
none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt;height:17.25pt'>
<p class=msonormal align=center 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>
</td>
<td width=189 style='width:141.7pt;border:solid windowtext 1.0pt;border-left:
none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt;height:17.25pt'>
<p class=msonormal align=center 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>
</td>
</tr>
<%set rs1=server.createobject("adodb.recordset")
do while not rs.eof
sql1="select * from t_readnews where readnews_id="&rs("r_readnews_id")
rs1.open sql1,cstr(conn),1,1%>
<tr style='mso-yfti-irow:1;mso-yfti-lastrow:yes;height:15.0pt'>
<td width=71 style='width:53.25pt;border:solid windowtext 1.0pt;border-top:
none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt;height:15.0pt'>
<p class=msonormal align=center style='text-align:center'><span lang=en-us
style='font-size:9.0pt'><%=rs1("dailynumber")%>071<o:p></o:p></span></p>
</td>
<td width=56 style='width:42.15pt;border-top:none;border-left:none;
border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
mso-border-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt;height:15.0pt'>
<p class=msonormal align=center style='text-align:center'><span
style='font-size:9.0pt'><%=area(rs1("area"))%><span lang=en-us><o:p></o:p></span></span></p>
</td>
<td width=72 style='width:54.0pt;border-top:none;border-left:none;border-bottom:
solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;mso-border-top-alt:
solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:
solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt;height:15.0pt'>
<p class=msonormal align=center style='text-align:center'><span
style='font-size:9.0pt'><%=rs1("roadname")%><span lang=en-us><o:p></o:p></span></span></p>
</td>
<td width=36 style='width:27.0pt;border-top:none;border-left:none;border-bottom:
solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;mso-border-top-alt:
solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:
solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt;height:15.0pt'>
<p class=msonormal align=center style='text-align:center'><span lang=en-us
style='font-size:9.0pt'><%=leftright1(rs1("leftright"))%><o:p></o:p></span></p>
</td>
<td width=48 style='width:36.0pt;border-top:none;border-left:none;border-bottom:
solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;mso-border-top-alt:
solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:
solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt;height:15.0pt'>
<p class=msonormal align=center style='text-align:center'><span lang=en-us
style='font-size:9.0pt'><%=rs1("form")%><o:p></o:p></span></p>
</td>
<td width=48 style='width:36.0pt;border-top:none;border-left:none;border-bottom:
solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;mso-border-top-alt:
solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:
solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt;height:15.0pt'>
<p class=msonormal align=center style='text-align:center'><span lang=en-us
style='font-size:9.0pt'><%=rs1("placelevel")%><o:p></o:p></span></p>
</td>
<td width=189 style='width:141.7pt;border-top:none;border-left:none;
border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
mso-border-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt;height:15.0pt'>
<p class=msonormal align=center style='text-align:center'><span class=grame><span
style='font-size:9.0pt'><%=rs1("paddress")%></span></span></p>
</td>
</tr>
<%rs1.close
rs.movenext
loop
rs.close
sql="select * from t_temp where temp_id="&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="&user_id
rs.open sql,cstr(conn),1,1
username=rs("truename")
rs.close
set rs=nothing
set rs1=nothing%>
</table>
<p></p>
<p class=msonormal align=right style='text-align:right;'><b><span
style='font-size:9.0pt'>销售人</span></b><span style='font-size:9.0pt'>:<span
lang=en-us><%=username%> <b>制表时间</b>:<%=now%></span></span><span lang=en-us> </span><span
lang=en-us style='font-size:9.0pt'><o:p></o:p></span></p>
</div>
</body>
</html>
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器