關於asp動態生成word文檔並下載

看過網上很多創建word文件的辦法,大都會要求客戶段瀏覽器設置安全性,有很大的侷限性。
經過本人摸索,找到一條目前本人認爲最簡易的辦法,不敢獨享,請朋友們點評。



1 利用word生成相應的word文件,如固定格式的表格等,然後用“另存爲”功能存成htm格式。

2 使用記事本等打開,可看見html源碼。

3 將代碼開始處的以下內容:
          <html 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 11">
          <meta name=Originator content="Microsoft Word 11">

改爲基本html代碼:

          <html>
          <head>
          <meta http-equiv=Content-Type content="text/html; charset=gb2312">

4 在頁面最開始處添加以下語句:
          <% Response.ContentType = "application/msword"
              response.AddHeader "content-disposition", "inline; filename=測試.doc"

          ' 此處可添加變量處理等語句,如打開數據庫獲取記錄集等。
          '
          %>

5 在html代碼中找到表格中相應位置填入asp變量或數據庫字段值。如以下代碼代表一個單元格:
          <td width=114 valign=top style='width:85.2pt;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'>
            <p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
            </td>
可修改爲:
            <td width=114 valign=top style='width:85.2pt;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'>
            <p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p> <%=trim(.fields("獎金").value)%>
          </td>

注意<%...%>中的內容即是要輸出的變量或字段值,(廢話,ASP人都知道)

6 保存,擴展名由htm改爲asp即可。


運行看看,瀏覽器自動彈出下載對話框,文件名爲“測試.doc”,也可直接打開!

此法最大的優點在於多麼複雜的word格式表格也能輕鬆搞定。

缺點是html代碼稍有點複雜,表格位置不好找。其實在做word文件時在單元格里輸入特殊字符,然後在htm代碼中查找該字符就可輕鬆定位。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章