把数据库查询信息直接生成网页嵌入EXCEL表的格式,并可导出成EXCEL文件

发表于:2007-06-30来源:作者:点击数: 标签:
看了精华区中众多处理EXCEL的贴子,好象没有人写这种操作方法,我把我做过的写出来给大家参考一下。 1、先在FrongPage中新建一个网页,在网页中插入一个EXCEL组件(插入-WEB组件-EXCEL电子表格),然后把你要输出的数据格式输入该嵌入的EXCEL表格中,在组件
看了精华区中众多处理EXCEL的贴子,好象没有人写这种操作方法,我把我做过的写出来给大家参考一下。

1、先在FrongPage中新建一个网页,在网页中插入一个EXCEL组件(插入-WEB组件-EXCEL电子表格),然后把你要输出的数据格式输入该嵌入的EXCEL表格中,在组件中点右键-属性,可定义该组件的各部分定义项,做好后,查看源代码,得到该嵌入组件的源代码。

2、在VID中新建一ASP网页,复制上步骤中的源代码,然后针对数据列加入循环取数代码。如下:
<object classid="clsid:0002E510-0000-0000-C000-000000000046" id="Spreadsheet1" codebase="msowc.cab" width="599" height="490">
  <param name="HTMLURL" value>
  <param name="HTMLData" value="&lt;html xmlns:x=&quot;urn:schemas-microsoft-com:office:excel&quot;
xmlns=&quot;http://www.w3.org/TR/REC-html40&quot;&gt;

&lt;head&gt;
&lt;style type=&quot;text/css&quot;&gt;
&lt;!--tr
    {mso-height-source:userset;}
td
    {white-space:nowrap;}
.wc80A6909
    {white-space:nowrap;
    font-family:宋体;
    mso-number-format:General;
    font-size:auto;
    font-weight:auto;
    font-style:auto;
    text-decoration:auto;
    mso-background-source:auto;
    mso-pattern:auto;
    mso-color-source:auto;
    text-align:general;
    vertical-align:bottom;
    border-top:none;
    border-left:none;
    border-right:none;
    border-bottom:none;
    mso-protection:locked;}
.wc01F2F7A
    {white-space:nowrap;
    font-family:宋体;
    mso-number-format:General;
    font-size:auto;
    font-weight:auto;
    font-style:auto;
    text-decoration:auto;
    mso-background-source:auto;
    mso-pattern:auto;
    mso-color-source:auto;
    text-align:general;
    vertical-align:bottom;
    border-top:none;
    border-left:none;
    border-right:none;
    border-bottom:none;
    mso-protection:locked;}
.wc0EA6F7A
    {white-space:nowrap;
    font-family:宋体;
    mso-number-format:General;
    font-size:auto;
    font-weight:auto;
    font-style:auto;
    text-decoration:auto;
    mso-background-source:auto;
    mso-pattern:auto;
    mso-color-source:auto;
    text-align:center;
    vertical-align:bottom;
    border-top:none;
    border-left:none;
    border-right:none;
    border-bottom:none;
    mso-protection:locked;}
--&gt;
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
&lt;x:ExcelWorkbook&gt;
  &lt;x:ExcelWorksheets&gt;
   &lt;x:ExcelWorksheet&gt;
    &lt;x:OWCVersion&gt;9.0.0.2710&lt;/x:OWCVersion&gt;
    &lt;x:Label Style=@#font-size:11pt;border-top:solid .5pt silver;border-left:
     solid .5pt silver;border-right:solid .5pt silver;border-bottom:solid .5pt silver@#&gt;
     &lt;x:Caption&gt;返工处理日报表-产成品出入库报表-<%=trim(rs_stock("fname"))%>(<%=sdate%>至<%=edate%>)&lt;/x:Caption&gt;
    &lt;/x:Label&gt;
    &lt;x:Name&gt;Sheet1&lt;/x:Name&gt;
    &lt;x:WorksheetOptions&gt;
     &lt;x:Selected/&gt;
     &lt;x:Height&gt;12965&lt;/x:Height&gt;
     &lt;x:Width&gt;13996&lt;/x:Width&gt;
     &lt;x:TopRowVisible&gt;0&lt;/x:TopRowVisible&gt;
     &lt;x:LeftColumnVisible&gt;0&lt;/x:LeftColumnVisible&gt;
     &lt;x:ProtectContents&gt;False&lt;/x:ProtectContents&gt;
     &lt;x:DefaultRowHeight&gt;315&lt;/x:DefaultRowHeight&gt;
     &lt;x:StandardWidth&gt;2389&lt;/x:StandardWidth&gt;
    &lt;/x:WorksheetOptions&gt;
   &lt;/x:ExcelWorksheet&gt;
  &lt;/x:ExcelWorksheets&gt;
  &lt;x:MaxHeight&gt;80%&lt;/x:MaxHeight&gt;
  &lt;x:MaxWidth&gt;80%&lt;/x:MaxWidth&gt;
&lt;/x:ExcelWorkbook&gt;
&lt;/xml&gt;&lt;![endif]--&gt;

&lt;table class=wc01F2F7A x:str&gt;
&lt;col class=wc01F2F7A width=&quot;86&quot; style=@#mso-width-source:userset@#&gt;
&lt;col class=wc01F2F7A width=&quot;112&quot; style=@#mso-width-source:userset@#&gt;
&lt;col class=wc01F2F7A width=&quot;66&quot; style=@#mso-width-source:userset@#&gt;
&lt;col width=&quot;83&quot; style=@#mso-width-source:userset@#&gt;
&lt;col width=&quot;56&quot;&gt;
&lt;col width=&quot;82&quot; style=@#mso-width-source:userset@#&gt;
&lt;tr height=&quot;21&quot; style=@#mso-height-source:userset@#&gt;
  &lt;td class=wc01F2F7A&gt;返工处理日报表-产成品出入库报表-<%=trim(rs_stock("fname"))%>(<%=sdate%>至<%=edate%>)&lt;/td&gt;
  &lt;td class=wc01F2F7A&gt;&lt;/td&gt;
  &lt;td class=wc01F2F7A&gt;&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr height=&quot;21&quot; style=@#mso-height-source:userset@#&gt;
  &lt;td class=wc01F2F7A&gt;仓库名称:&lt;/td&gt;
  &lt;td class=wc01F2F7A&gt;<%=trim(rs_stock("fname"))%>&lt;/td&gt;
  &lt;td class=wc01F2F7A&gt;统计日期:&lt;/td&gt;
  &lt;td&gt;<%=cstr(sdate)%>&lt;/td&gt;
  &lt;td class=wc0EA6F7A&gt;至&lt;/td&gt;
  &lt;td&gt;<%=cstr(edate)%>&lt;/td&gt;
&lt;/tr&gt;
&lt;tr height=&quot;21&quot; style=@#mso-height-source:userset@#&gt;
  &lt;td class=wc80A6909&gt;物料短代码&lt;/td&gt;
  &lt;td class=wc80A6909&gt;物料长代码&lt;/td&gt;
  &lt;td class=wc80A6909&gt;物料名称&lt;/td&gt;
  &lt;td class=wc80A6909&gt;返工转出&lt;/td&gt;
  &lt;td&gt;即时库存&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
<%
@#开始数据库取数过程
do while not rs_item.EOF%>
&lt;tr height=&quot;21&quot; style=@#mso-height-source:userset@#&gt;
  &lt;td class=wc01F2F7A&gt;<%=rs_item("FshortNumber")%>&lt;/td&gt;
  &lt;td class=wc01F2F7A&gt;<%=rs_item("FNumber")%>&lt;/td&gt;
  &lt;td class=wc01F2F7A&gt;<%=rs_item("FName")%>&lt;/td&gt;
  &lt;td class=wc01F2F7A x:num=&quot;<%=round(qty_out,rs_item("FQtyDecimal"))%>&quot;&gt;&lt;/td&gt;
  &lt;td class=wc01F2F7A x:num=&quot;<%=round(kc_now,rs_item("FQtyDecimal"))%>&quot;&gt;&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
<%rs_item.MoveNext
loop%>
&lt;/table&gt;

&lt;/body&gt;

&lt;/html&gt;
">
  <param name="DataType" value="HTMLDATA">
  <param name="AutoFit" value="0">
  <param name="DisplayColHeaders" value="-1">
  <param name="DisplayGridlines" value="-1">
  <param name="DisplayHorizontalScrollBar" value="-1">
  <param name="DisplayRowHeaders" value="-1">
  <param name="DisplayTitleBar" value="-1">
  <param name="DisplayToolbar" value="-1">
  <param name="DisplayVerticalScrollBar" value="-1">
  <param name="EnableAutoCalculate" value="-1">
  <param name="EnableEvents" value="-1">
  <param name="MoveAfterReturn" value="-1">
  <param name="MoveAfterReturnDirection" value="0">
  <param name="RightToLeft" value="0">
  <param name="ViewableRange" value="1:65536">
</object>

3、发布。在OFFICE安装文件中查找msowc.cab文件,把该文件同时复制到WEB路径中,然后修改组件代码中的第一行,明确该文件的路径,如下:
<object classid="clsid:0002E510-0000-0000-C000-000000000046" id="Spreadsheet1" codebase="msowc.cab" width="599" height="490">

效果图查看附件。

注:该嵌入EXCEL组件可以客户端网页动态调整SIZE,可进行数据计算及排序,但不能反写数据库,代码在OFFICE2000+WIN2000环境中通过。另外该代码在OFFICE2000及OFFICE2003中有所不同,因为所该代码调用OFFICE的OWC组件,在OFFICE2003中该组件已经升级,所以如果客户端一般使用OFFICE2003的话,设计环境最好OFFICE2000+WIN2000环境,因为OFFICE2003可以向下兼容,如果设计环境采用OFFICE2003,但客户端安装OFFICE2000,则网页会无法显示,此时会提示安装OFFICE2003的OWC组件,此组件可以OFFICE2003安装盘中提取。

原文转自:http://www.ltesting.net