如何在串流 MIME 內容時格式化 Excel 活頁簿

文章翻譯 文章翻譯
文章編號: 271572 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

結論

本文將告訴您,如何以動態伺服器網頁 (ASP) 來建立格式化活頁簿,而且可用 MIME 內容的形式將此活頁簿串流至 Microsoft Excel。

其他相關資訊

Excel 2000 可用 HTML/XML 混種格式來保存儲存資訊。將 Excel 2000 活頁簿儲存為網頁時,Excel 會建立一檔案,其中含有對 Excel 有特殊意義的 HTML 標籤與 XML 標籤組合。以此格式儲存的活頁簿可從 Excel 送至瀏覽器,然後再回到 Excel (「來回傳送」),而不會喪失活頁簿完整性。

當您在 Internet Explorer 中開啟儲存為網頁的活頁簿時,系統會用 HTML 標記來呈現文件。在 Excel 中開啟此種格式的活頁簿時,Excel 會針對與活頁簿、工作表、資料列和資料欄相關的設定使用 XML 標記。如需有關在 Excel 2000 中使用 HTML 和 XML 的詳細資訊,請參閱下列 MSDN 網站上的<Microsoft Office HTML 和 XML 參考>(英文):
http://msdn2.microsoft.com/en-us/library/Aa155477(office.10).aspx
透過 ASP,您就能以 Excel 的 HTML/XML 格式來建立自己的文件,使文件在串流至用戶端瀏覽器時,可讓它在 Excel 中顯示。您可以控制資料的儲存格位置,以及指定 Excel 之 HTML/XML 格式可支援的任何活頁簿或工作表設定。如果要建立採用 HTML/XML 格式的 Excel 活頁簿,然後以 MIME 內容的形式將其串流至用戶端上的 Excel,請依照下列步驟執行:
  1. 將下列程式碼貼到「記事本」中:
    <%@ Language=VBScript %>
    <%
      ' Check for a value passed on the address bar.
      if (Request.QueryString("i")) = "" then bFirst = true
      ' If we have a value for "i", we know that we can display the
      ' data in Excel.
      if (bFirst = false) then
        ' Buffer the content and send it to Excel.
        Response.Buffer = true
        Response.ContentType = "application/vnd.ms-excel" 
    %>
    <HTML xmlns:x="urn:schemas-microsoft-com:office:excel">
    <HEAD>
    <style>
      <!--table
      @page
         {mso-header-data:"&CMultiplication Table\000ADate\: &D\000APage &P";
    	mso-page-orientation:landscape;}
         br
         {mso-data-placement:same-cell;}
    
      -->
    </style>
      <!--[if gte mso 9]><xml>
       <x:ExcelWorkbook>
        <x:ExcelWorksheets>
         <x:ExcelWorksheet>
          <x:Name>Sample Workbook</x:Name>
          <x:WorksheetOptions>
           <x:Print>
            <x:ValidPrinterInfo/>
           </x:Print>
          </x:WorksheetOptions>
         </x:ExcelWorksheet>
        </x:ExcelWorksheets>
       </x:ExcelWorkbook>
      </xml><![endif]--> 
    </HEAD>
    <BODY>
    <TABLE>
    <%
       ' Build a multiplication table from 1,1 to i,j.
       for i = 1 to CInt(Request.QueryString("i"))
         Response.Write "  <TR>" + vbCrLf
         for j = 1 to CInt(Request.QueryString("j"))
           if (j = 1) or (i = 1) then
             Response.Write "    <TD bgcolor=""#FFF8DC"">"
           else
             Response.Write "    <TD bgcolor=""#B0C4DE"">"
           end if
    	   Response.Write CStr(i*j) + "</TD>" + vbCrLf
         next
         Response.Write "  </TR>" + vbCrLf
       next
    %>
    </BODY>
    </HTML>
    <%
      else
      ' The user hasn't loaded the page yet. Prompt them for
      ' values for the table.
    %>
    <HTML>
    <BODY>
    Please enter indices for the multiplication table:<BR>
    <FORM action="xlmime.asp" method=GET>  
      i = <INPUT type="text" name=i style="WIDTH: 25px"><BR>
      j = <INPUT type="text" name=j style="WIDTH: 25px"><BR><BR/>
      <INPUT type="submit" value="Submit"><BR/>
    </FORM>
    </BODY>
    </HTML>
    <%
      end if
    %>
    					
  2. 以 XLMime.asp 為名,將檔案儲存到網頁伺服器的虛擬根目錄中 (預設的虛擬根目錄為 C:\Inetpub\Wwwroot)。
  3. 啟動 Internet Explorer 並瀏覽至 http://YourWebServer/xlmime.asp,其中的 YourWebServer 代表您的網頁伺服器名稱。
  4. 在出現的網頁中,為每個文字方塊填入數值,然後按一下 [送出]。Excel 隨即在瀏覽器中開啟新的活頁簿。新活頁簿會在您所指定之資料列數 (i) 與資料欄數 (j) 中包含格式化的資料。此外,如果您查看工作表的 [版面設定] 資訊,將會發現列印方向是設定為橫向,並且有自訂標題存在。

?考

如需有關串流 MIME 內容到 Office 應用程式的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
266263 BUG:Word 2000 and Excel 2000 Display ASP Source When Using MIME Type to Stream Data
199841 如何使用 MIME 類型在 IE 中以 Excel 顯示 ASP 結果
如需其他有關 Office Automation 的詳細資訊,請造訪 Microsoft Office Development 支援網站:
http://support.microsoft.com/ofd

屬性

文章編號: 271572 - 上次校閱: 2007年8月14日 - 版次: 5.1
這篇文章中的資訊適用於:
  • Microsoft Office Excel 2003
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Active Server Pages 4.0
關鍵字:?
kbhowto KB271572
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com