如何在以流的形式传输 MIME 内容时设置 Excel 工作簿的格式

文章翻译 文章翻译
文章编号: 271572 - 查看本文应用于的产品
展开全部 | 关闭全部

概要

本文阐明了如何使用 Active Server Pages (ASP) 创建已设置格式的工作簿,并将该工作簿作为 MIME 内容输入到 Microsoft Excel 中。

更多信息

Excel 2000 可将存储信息保存为 HTML/XML 混合格式。在将 Excel 2000 工作簿另存为网页时,Excel 会创建一个同时包含 HTML 标记和 XML 标记的文件,这两种标记对 Excel 有特殊的意义。保存为此格式的工作簿可以从 Excel 转至浏览器,并可再次返回到 Excel 中(一次“往返”),而不会丢失工作簿的完整性。

当在 Internet Explorer 中打开一个另存为网页的工作簿时,会用 HTML 标记来呈现文档。当在 Excel 中打开此格式的工作簿时,Excel 会将 XML 标记用作可能适用于工作簿、工作表、行和列的设置。有关在 Excel 2000 中使用 HTML 和 XML 的更多信息,请参见以下 MSDN 网站上的“Microsoft Office HTML and XML Reference”(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. 在 Web 服务器的虚拟根目录中,将该文件另存为 XLMime.asp。(默认的虚拟根目录为 C:\Inetpub\Wwwroot。)
  3. 启动 Internet Explorer 并浏览到 http://YourWebServer/xlmime.asp,其中 YourWebServer 是您的 Web 服务器的名称。
  4. 在出现的网页中,在给出的每个文本框中输入数值,然后单击提交。Excel 会在浏览器中就地激活新的工作簿。该新工作簿将在您指定的行数 (i) 和列数 (j) 中包含已设置格式的数据。而且,如果检查工作表的“页面设置”信息,您会注意到页面方向已设置为横向并且存在一个自定义标题。

参考

有关将 MIME 内容以流的形式传输到 Office 应用程序的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
266263 BUG:在使用 MIME 类型以流的方式传送数据时 Word 2000 和 Excel 2000 显示 ASP 源
199841 如何在 IE 中使用 Excel 以 MIME 类型显示 ASP 结果
有关 Office 自动化的更多信息,请访问以下 Microsoft Office Development 支持网站:
http://support.microsoft.com/ofd

属性

文章编号: 271572 - 最后修改: 2007年8月14日 - 修订: 5.1
这篇文章中的信息适用于:
  • Microsoft Office Excel 2003
  • Microsoft Excel 2000 标准版
  • 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