HOW TO:使用 ASP.NET 或 Visual Basic.NET 將 XML 轉換為 Microsoft Word 2002 的 RTF 格式 (RTF)

文章翻譯 文章翻譯
文章編號: 311461 - 檢視此文章適用的產品。
本文曾發行於 CHT311461
全部展開 | 全部摺疊

在此頁中

結論

本文將逐步告訴您,如何使用 Visual Basic .NET 從可延伸標記語言 (XML) 產生 RTF 格式 (RTF)。

RTF 格式是以一種以文字為基礎,將格式化文字、文件版面配置及圖形加以編碼的格式。RTF 通常和 Microsoft Word 一起使用。因為 RTF 以文字為基礎,因此可以很容易以程式碼產生。如果您要將 XML 資料以目錄/清單或合併列印類型文件的形式顯示在 Word 中,那麼將 XML 資料轉換為 RTF 資料流可能是很好的解決方案。而且事實上,如果您正在開發在 Web 伺服器上產生文件的解決方案,則使用 HTML 或 RTF 等以文字為基礎的格式來產生文件將比使用 Word 的伺服器端 Automation 更好。

本文將逐步告訴您幾個使用本文提供的範例程式碼將 XML 轉換為 RTF 以顯示在 Word 的方法:
  • 將 RTF 儲存至檔案並在 Word 中開啟該檔案。
  • 使用 Windows 剪貼簿將 RTF 轉換為 Word。
  • 從 ASP.NET Web 應用程式將 RTF 資料流處理為 Microsoft Internet Explorer 中主控的 Word。

RTF 格式規格

RTF 格式 (RTF) 規格是產生 RTF 相容文字檔的公用規格。您可以使用下列 Microsoft Developer Network (MSDN) 網站的規格文件做為協助您建立 RTF 檔案的資源。但是,該規格是依「現狀」提供,且 Microsoft 技術支援部門不提供該規格的支援。請按一下下列 RTF 規格的連結:
Rich Text Format Specification, version 1.6

Rich Text Format Specification, version 1.7

將 XML 轉換為 RTF

您可以從任何來源取得有效的 XML 並將它轉換為 RTF。下列程序說明如何將自訂的 XML 轉換為 RTF,儲存至檔案或複製到剪貼簿。
  1. 建立新的 Visual Basic .NET Windows 應用程式 。程式會為您建立 Form1。
  2. 在 Form1 新增二個按鈕控制項。
  3. [檢視] 功能表按一下 [程式碼]
  4. 在 Form1 Class 實作之前,在程式碼視窗上方插入下列內容:
    Imports System.Xml
    Imports System.Xml.Xsl
    Imports System.IO
  5. 將下列程式碼新增至 Form1 Class 實作 (在 End Class 之前):
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Button1.Text = "To File"
            Button2.Text = "To Clipboard"
    
        End Sub
    
        Private Sub ButtonsClick(ByVal sender As System.Object, ByVal e As System.EventArgs) _
            Handles Button1.Click, Button2.Click
    
            Dim sPath As String = Directory.GetParent(Directory.GetCurrentDirectory()).ToString
    
            ' Open the XML file.
            Dim xmlDoc As New XmlDocument()
            xmlDoc.Load(sPath & "\Dictionary.xml")
    
            ' Open the XSL file.
            Dim xslDoc As New XslTransform()
            xslDoc.Load(sPath & "\Dictionary.xslt")
    
            Select Case sender.name
                Case "Button1"
                    ' Transform the XSL and save it to file.
                    Dim TWrtr As New XmlTextWriter(sPath & "\Dictionary.RTF", System.Text.Encoding.Default)
                    xslDoc.Transform(xmlDoc, Nothing, TWrtr)
                    TWrtr.Close()
                    MsgBox("Transformed RTF saved to " & sPath & "\Dictionary.RTF")
                Case "Button2"
                    ' Transform the XSL and copy it to the clipboard.
                    Dim SWrtr As New StringWriter()
                    xslDoc.Transform(xmlDoc, Nothing, SWrtr)
                    Dim datObj As New DataObject(DataFormats.Rtf, SWrtr)
                    Clipboard.SetDataObject(datObj)
                    SWrtr.Close()
                    MsgBox("Transformed RTF copied to the clipboard.")
            End Select
    
        End Sub
  6. 將 XML 檔案新增至您的專案:
    1. [專案] 功能表上按一下 [加入新項目]
    2. 從範本清單按一下 [XML 檔]
    3. 鍵入名稱 Dictionary.xml 然後按一下 [開啟]
    4. 將下列程式碼附加至 Dictionary.xml 的內容:
      <Dictionary>
        <Entries>
          <Entry>
            <Word Type="1">Energetic</Word>
            <Definition>Having, exerting, or displaying energy</Definition>
          </Entry>
          <Entry>
            <Word Type="1">Happy</Word>
            <Definition>Enjoying, displaying, or characterized by pleasure or joy</Definition>
          </Entry>
          <Entry>
            <Word Type="2">Emotion</Word>
            <Definition>A complex, strong subjective response</Definition>
          </Entry>
        </Entries>
      </Dictionary> 
  7. 將 XSLT 檔新增至您的專案:
    1. [專案] 功能表上按一下 [加入新項目]
    2. 從範本清單按一下 [XSLT 檔]
    3. 鍵入名稱 Dictionary.xslt 然後按一下 [開啟]
    4. 以下列程式碼取代 Dictionary.xslt 的內容:
       
      <?xml version="1.0" encoding="UTF-8" ?>
      <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      
      	<xsl:output method="text"/>
      	<xsl:template match="/">
      
      	<xsl:text>{\rtf1</xsl:text>
      
      	<xsl:for-each select="Dictionary/Entries/Entry">
      
      		<xsl:text>\par\b </xsl:text>
      		<xsl:value-of select="Word"/>
      		<xsl:text>\b0\i  </xsl:text> 
      		<xsl:if test="Word[@Type='1']">adj.</xsl:if>
      		<xsl:if test="Word[@Type='2']">n.</xsl:if>
      		<xsl:text>\i0\par </xsl:text>
      		<xsl:value-of select="Definition"/>
      		<xsl:text>\par</xsl:text>
      	</xsl:for-each>
      
      	<xsl:text>}</xsl:text>
      
      	</xsl:template>
      	
      </xsl:stylesheet>  
  8. 按 F5 鍵以建置並執行程式。
  9. 按一下 [至檔案] 將轉換的 XML 儲存至檔案 (Dictionary.rtf)。您可以在 Word 中開啟 RTF 檔檢查轉換的結果。
  10. 按一下 [至剪貼簿] 將轉換的 XML 複製到 Windows 剪貼簿。然後您就可以將剪貼簿內容貼在新的或現有的 Word 文件查看其結果。

將資料集轉換為 RTF

Visual Basic .NET 可讓您很容易地轉換資料集。此程序告訴您如何從 Northwind 範例資料庫取得相關的資料,並轉換為 RTF。以下說明二種不同的轉換:列出客戶連絡人資訊的簡單 RTF 文件,以及較複雜,以合併列印類型格式顯示客戶訂貨資訊的 RTF 文件。
  1. 啟動新的 Visual Basic ASP.NET Web 應用程式 並儲存至 http://localhost/RTFDemo

    會為您建立 WebForm1
  2. 在 WebForm1 新增二個 Button 控制項。
  3. [檢視] 功能表按一下 [程式碼]
  4. 將下列程式碼新增至 Page_Load 函數:
            Button1.Text = "View Contact Information"
            Button2.Text = "View Customer Orders"
  5. 將下列函數新增至 WebForm1 類別。

    注意 :下列程式碼假設您有在本機主機上安裝 SQL Server。如果必須使用其他電腦,請隨之變更連線字串的資料來源成員。
        Private Sub ButtonsClick(ByVal sender As System.Object, ByVal e As System.EventArgs) _
                Handles Button1.Click, Button2.Click
    
            ' Connect to the data source.
            Dim nwindConn As SqlConnection = New SqlConnection( _
                "Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI")
            nwindConn.Open()
    
            ' Build a dataset based on whether you requested to view a list of 
            ' orders or a list of contacts.
            Dim ds As DataSet
            Dim sXSL As String
            Select Case (sender.id)
    
                Case "Button1"
    
                    ds = New DataSet("Contacts")
                    Dim ContactsDA As SqlDataAdapter = New SqlDataAdapter("SELECT * FROM Customers", nwindConn)
                    ContactsDA.Fill(ds, "Customers")
                    ' XSLT to use for transforming this dataset.
                    sXSL = "Contacts.xslt"  
    
                Case "Button2"
    
                    ds = New DataSet("CustomerOrders")
    
                    Dim custDA As SqlDataAdapter = New SqlDataAdapter("SELECT CustomerID, CompanyName, " & _
                        "Address, City, Region, PostalCode, Country FROM Customers", nwindConn)
                    custDA.Fill(ds, "Customers")
    
                    Dim ordersDA As SqlDataAdapter = New SqlDataAdapter("SELECT OrderID, CustomerID, Freight " & _
                        "FROM Orders", nwindConn)
                    ordersDA.Fill(ds, "Orders")
    
                    Dim ordersdetailDA As SqlDataAdapter = New SqlDataAdapter( _
                        "SELECT [Order Details].OrderID, Products.ProductName, [Order Details].Quantity, " & _
                        "[Order Details].[UnitPrice]*[Quantity]*(1-[Discount]) AS ItemTotal " & _
                        "FROM Products INNER JOIN [Order Details] ON Products.ProductID = [Order Details].ProductID " _
                        , nwindConn)
    
                    ordersdetailDA.Fill(ds, "OrderDetails")
    
                    nwindConn.Close()
    
                    ds.Relations.Add("CustOrders", _
                    ds.Tables("Customers").Columns("CustomerID"), _
                    ds.Tables("Orders").Columns("CustomerID")).Nested = True
    
                    ds.Relations.Add("OrdersToOrdersDetail", _
                    ds.Tables("Orders").Columns("OrderID"), _
                    ds.Tables("OrderDetails").Columns("OrderID")).Nested = True
    
                    ' XSLT to use for transforming this dataset.
                    sXSL = "CustOrders.xslt" 
    
            End Select
    
            ' Close the connection to the data source.
            nwindConn.Close()
    
            ' Transform the dataset by using the appropriate stylesheet.
            Dim xmlDoc As XmlDataDocument = New XmlDataDocument(ds)
            Dim xslTran As XslTransform = New XslTransform()
            xslTran.Load(Server.MapPath(sXSL))
    
            ' Stream the results of the transformation to Word.
            Response.ContentType = "application/msword"
            Response.Charset = ""
            Response.ContentEncoding = System.Text.Encoding.Default
            xslTran.Transform(xmlDoc, Nothing, Response.Output)
    
        End Sub
  6. 在 WebForm1 類別實作之前,將下列數行程式碼新增至 WebForm1.aspx.vb 的上方:
    Imports System.Data.SqlClient
    Imports System.Xml
    Imports System.Xml.Xsl
  7. [專案] 功能表按一下 [加入新項目] 。從範本清單按一下 [XSLT 檔] ,將檔案命名為 Contacts.xslt ,然後按一下 [開啟]
  8. 以下列程式碼取代 Contacts.xslt 的內容:
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    	xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts" >   
    
    <xsl:output method="text"/>
    
    <xsl:template match="/">
    
    	<xsl:text>{\rtf1</xsl:text>
    	
        <xsl:text>{\fonttbl{\f0\froman\fcharset0\fprq2 Times New Roman;}{\f1\fswiss\fcharset0\fprq2 Arial;}}</xsl:text>
        
    	<xsl:text>{\header\pard\fs50 My Customer Contacts}</xsl:text>
    	
    	<xsl:text>{\footer\pard\fs18 Page {\field{\*\fldinst PAGE}</xsl:text>
    	<xsl:text>{\fldrslt }} of {\field{\*\fldinst NUMPAGES}{\fldrslt 1}} \par}</xsl:text>
    	
    	<xsl:text>\f1\fs20</xsl:text>
    	
        <xsl:for-each select="Contacts/Customers">
    		<xsl:text>\par\b </xsl:text><xsl:value-of select="CustomerID"/><xsl:text>\b0</xsl:text>
    		<xsl:text>\par </xsl:text><xsl:value-of select="CompanyName"/>
    		<xsl:text>\par </xsl:text><xsl:value-of select="ContactName"/>
    		<xsl:text>\par </xsl:text><xsl:value-of select="Phone"/>
    		<xsl:text>\par</xsl:text>
        </xsl:for-each>
    	      
    	<xsl:text>}</xsl:text>
    
    </xsl:template>
    
    <xsl:template match="Customers">
    
        <xsl:text>\par\b </xsl:text><xsl:value-of select="CustomerID"/><xsl:text>\b0</xsl:text>
        <xsl:text>\par </xsl:text><xsl:value-of select="CompanyName"/>
        <xsl:text>\par </xsl:text><xsl:value-of select="ContactName"/>
        <xsl:text>\par </xsl:text><xsl:value-of select="Phone"/>
        <xsl:text>\par</xsl:text>
    
    </xsl:template>
    
    </xsl:stylesheet> 
  9. [專案] 功能表按一下 [加入新項目] 。從範本清單按一下 [XSLT 檔] ,將檔案命名為 CustOrders.xslt ,然後按一下 [開啟]
  10. 以下列程式碼取代 CustOrders.xslt 的內容:
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    	xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts" >   
    
    <xsl:output method="text"/>
    
    <msxsl:script language="VB" implements-prefix="user">
        Dim CustomerTotal as Double = 0
        Dim OrderSubtotal as Double = 0
        
        Function AddToOrderSubtotal(amt)
            amt.MoveNext
            OrderSubtotal = OrderSubtotal + System.Convert.ToDouble(amt.Current.Value)
        End Function
        
        Function GetOrderSubtotal
    		GetOrderSubtotal = OrderSubtotal
        End Function
        
        Function GetCustomerTotal
    		GetCustomerTotal = CustomerTotal
    		CustomerTotal = 0
    	End Function
    	
        Function GetOrderTotal(freight)
           freight.MoveNext
           nFreight = System.Convert.ToDouble(freight.Current.Value)
           GetOrderTotal = nFreight + OrderSubtotal
           CustomerTotal = nFreight + OrderSubtotal + CustomerTotal
           OrderSubtotal = 0  
        End Function
            
    </msxsl:script>
    
    <xsl:template match="CustomerOrders">
    
    	<xsl:text>{\rtf1</xsl:text>
    	
    	<xsl:text>{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;
    	\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;
    	\red255\green255\blue255;\red221\green221\blue221;}</xsl:text>
    	
    	<xsl:text>{\info{\title Sample RTF Document}{\author Microsoft Developer Support}}</xsl:text>
    	
    	<xsl:text>{\header\pard\qc{\fs50 ASP-Generated RTF\par}{\fs18\chdate\par}\par\par}</xsl:text>
    	
    	<xsl:text>{\footer\pard\qc\brdrt\brdrs\brdrw10\brsp100\fs18 Page {\field{\*\fldinst PAGE}</xsl:text>
    	<xsl:text>{\fldrslt }} of {\field{\*\fldinst NUMPAGES}{\fldrslt 1}} \par}</xsl:text>
    	
    	<xsl:apply-templates select="Customers"/>
    	      
    	<xsl:text>}</xsl:text>
    
    </xsl:template>
    
    <xsl:template match="Customers">
    
        <xsl:text>\par\pard\fs20\cf2\qr\b </xsl:text><xsl:value-of select="CustomerID"/><xsl:text>\cf0\b0</xsl:text>
        <xsl:text>\par\pard </xsl:text><xsl:value-of select="CompanyName"/>
        <xsl:text>\par </xsl:text><xsl:value-of select="Address"/>
        <xsl:text>\par </xsl:text><xsl:value-of select="City"/>
        <xsl:text>, </xsl:text><xsl:value-of select="Region"/>
        <xsl:text> </xsl:text><xsl:value-of select="PostalCode"/>
        <xsl:text>\par </xsl:text><xsl:value-of select="Country"/>
        <xsl:text>\par\par</xsl:text>
    
    	<xsl:apply-templates select="Orders"/>
    
    	<xsl:text>\trowd\cellx7000\cellx9000\pard\intbl\ql\b\cbpat1 </xsl:text>
    	<xsl:text>Order Total for the Current Period:\cell </xsl:text>
    	<xsl:text>\qr</xsl:text>
    	<xsl:variable name="CustTtl" select="user:GetCustomerTotal()"/>
    	<xsl:value-of select="format-number($CustTtl,'$###0.00')"/>
    	<xsl:text>\cell</xsl:text>
    	<xsl:text>\pard\intbl\row</xsl:text>
    		
    	<xsl:text>\pard\par\pard</xsl:text>
    	<xsl:text>\pard\plain\fs18\cf6\qc</xsl:text>
    	<xsl:choose>
    		<xsl:when test="$CustTtl = 0">
             <xsl:text>\b We've missed hearing from you!\b0 </xsl:text>
             <xsl:text> At your convenience, please call your personal sales representative </xsl:text>
             <xsl:text>so that we may discuss our specials for new and returning customers!</xsl:text>
          </xsl:when>
          <xsl:when test="$CustTtl &gt; 2000">
             <xsl:text>\b Congratulations!\b0  Your purchases for this period qualify you for a \b 20%\b0 </xsl:text>
             <xsl:text> discount on one of your next orders. To take advantage of this offer, provide </xsl:text>
             <xsl:text>the coupon code ABC123XYZ when placing your order.</xsl:text>
          </xsl:when>
          <xsl:otherwise>
             <xsl:text> We value your patronage with Northwind Traders and would love to hear from you. </xsl:text>
             <xsl:text>If you have any questions about our upcoming line of products or if you want </xsl:text>
             <xsl:text>a catalog for the coming season, call 1-888-000-000.</xsl:text>
          </xsl:otherwise>
        </xsl:choose>
    	<xsl:text>\par\pard</xsl:text>
    	<xsl:text>\par \page</xsl:text>
    
    </xsl:template>
    
    <xsl:template match="Orders">
    
    	<xsl:text>\trowd\cellx9000\pard\intbl\cbpat9</xsl:text>
    	<xsl:text>\ql\b </xsl:text><xsl:value-of select="OrderID"/><xsl:text>\b0\cell </xsl:text>
    	<xsl:text>\pard\intbl\row</xsl:text>
    	
    	<xsl:apply-templates select="OrderDetails"/>
    
    	<xsl:text>\trowd\cellx7000\cellx9000\pard\intbl</xsl:text>
    	<xsl:text>\qr Subtotal:\cell </xsl:text>
    	<xsl:value-of select="format-number(user:GetOrderSubtotal(),'$###0.00')"/><xsl:text>\cell</xsl:text>	
    	<xsl:text>\pard\intbl\row</xsl:text>
    		
    	<xsl:text>\trowd\cellx7000\cellx9000\pard\intbl</xsl:text>
    	<xsl:text>\qr Freight:\cell </xsl:text>
    	<xsl:value-of select="format-number(Freight,'$###0.00')"/><xsl:text>\cell</xsl:text>	
    	<xsl:text>\pard\intbl\row</xsl:text>
    
    	<xsl:text>\trowd\cellx7000\cellx9000\pard\intbl</xsl:text>
    	<xsl:text>\qr Total:\cell </xsl:text>
    	<xsl:value-of select="format-number(user:GetOrderTotal(Freight), '$###0.00')"/><xsl:text>\cell</xsl:text>	
    	<xsl:text>\pard\intbl\row</xsl:text>
    		
    	<xsl:text>\trowd\cellx9000\pard\intbl \cell\pard\intbl\row</xsl:text>
    	
    </xsl:template>
    
    <xsl:template match="OrderDetails">
    
    	<xsl:text>\trowd\cellx5000\cellx7000\cellx9000\pard\intbl\ql </xsl:text>
    	<xsl:value-of select="ProductName"/><xsl:text>\cell </xsl:text>
    	<xsl:text>\qc </xsl:text><xsl:value-of select="Quantity"/><xsl:text>\cell </xsl:text>
    	<xsl:text>\qr </xsl:text>
    	<xsl:value-of select="format-number(ItemTotal,'$###0.00')"/><xsl:text>\cell</xsl:text>
    	<xsl:variable name="RunTotal" select="user:AddToOrderSubtotal(ItemTotal)"/>
    	<xsl:text>\pard\intbl\row</xsl:text>
    
    </xsl:template>
    
    </xsl:stylesheet>
  11. [建置] 功能表按一下 [建置方案]
  12. 啟動 Internet Explorer 並瀏覽至 http://localhost/RTFDemo/Webform1.aspx。
  13. 按一下 [檢視連絡人資訊] 在 Word 檢視第一個轉換為 RTF 的 XML 檔。
  14. 按一下 Internet Explorer 的 [上一頁]
  15. 按一下 [檢視客戶訂單] 在 Word 檢視第二個轉換為 RTF 的 XML 檔。

RTF 疑難排解祕訣

  • 如同上述 〈將資料集轉換為 RTF〉 一節中的範例程式碼,直接將 RTF 資料流處理至瀏覽器。或者,您也可以將 RTF 儲存至檔案並重新導向至儲存的檔案。若要這樣做,請將範例中的下列數行程式碼
    Response.ContentType = "application/msword"
    Response.ContentEncoding = System.Text.Encoding.Default
    Response.Charset = ""
    xslTran.Transform(xmlDoc, Nothing, Response.Output)
    取代為:
    Dim writer As XmlTextWriter = New XmlTextWriter( _
            Server.MapPath("Results.doc"), System.Text.Encoding.Default)
    xslTran.Transform(xmlDoc, Nothing, writer)
    writer.Close()
    Response.Redirect("Results.doc")
    以這種方式將 RTF 儲存至檔案可讓您很容易使用文字編輯器,例如記事本,檢查檔案中的 RTF 結構。如果 XLS 轉換並未產生您要的結果,將 RTF 儲存至檔案將會是很有用的疑難排解技巧。
  • 轉換至 RTF 時,請注意如何在樣式表中呈現空格和換行鍵,因為他們會影響 Word 如何解譯 RTF。本文的二個程式碼範例都使用 <xsl:text> 項目,因為它會強制保留空格資訊。
  • 在樣式表中使用 <xsl:output method="text"> 可確保將 XML 轉換為文字 (而不是預設的輸出方法 XML)。如果未指定文字為輸出方法,檔案可能會新增 XML 處理指令。這樣可能會使 Word 無法正確將文字解譯為 RTF。

?考

如需有關 Microsoft Word 和其他 Office 應用程式之伺服器端 Automation 的詳細資訊,請按一下下面的文件編號,檢視 Microsoft Knowledge Base 中的文件:
257757 INFO:Considerations for Server-Side Automation of Office
如需有關在方案中使用 RTF 的詳細資訊,請按一下下面的文件編號,檢視 Microsoft Knowledge Base 中的文件:
270906 HOWTO:使用 ASP 產生 RTF 格式的文件,以便在 Microsoft Word 中使用
258513 HOWTO:Paste RichText Formatted String into Word with Visual Basic Automation
如需有關使用 Visual Basic .NET 轉換 XML 的詳細資訊,請按一下下面的文件編號,檢視 Microsoft Knowledge Base 中的文件:
300934 如何:以 Visual Basic .NET 將 XSL 轉換套用到 XML 以進行資料流處理
300929 HOW TO:Apply an XSL Transformation from an XML Document to an XML Document by Using Visual Basic .NET


本文件是根據 Microsoft Knowledge Base 文件編號 Q311461 翻譯的。若要參考原始英文文件內容,請至以下網址:

http://support.microsoft.com/support/kb/articles/Q311/4/61.asp

屬性

文章編號: 311461 - 上次校閱: 2004年3月24日 - 版次: 2.0
這篇文章中的資訊適用於:
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft ASP .NET (包含於 .NET Framework)
  • Microsoft Word 2002 Standard Edition
關鍵字:?
kbhowtomaster kbword kbgrpdso KB311461
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