Applies ToMicrosoft 365 Excel Excel 2024 Excel 2021 Excel 2019 Excel 2016

若要在 Excel 中匯入匯出 XML 資料,不妨採用 XML 對應;XML 對應是將 XML 元素與儲存格中的資料建立關聯,以取得您想要的結果。 若要建立一個 XML 對應,必須具有 XML 結構描述檔案 (.xsd) 和 XML 資料檔案 (.xml)。 建立 XML 對應之後,就可以按照您要的方式來對應 XML 元素。

提示: 如需進一步瞭解搭配 Excel 使用 XML 的相關資訊,請參閱 Excel 中的 XML 概觀一文。

尋找或建立 XML 結構描述和 XML 資料檔案

如果已有其他資料庫或應用程式建立了 XML 結構描述或 XML 資料檔案,您也許已經有這些項目了。 例如,您可能具有以下項目:將資料匯出成這些 XML 檔案格式的企業營運系統應用程式;提供這些 XML 檔案的商業網站或 Web 服務;或是由 IT 部門開發、可自動建立這些 XML 檔案的自訂應用程式。

如果沒有所需的 XML 檔案,您可以將想要使用的資料儲存為文字檔,作為建立 XML 檔案的準備。 接著可以使用 Access 和 Excel,將文字檔轉換為您所需要的 XML 檔案。 方法如下:

存取

  1. 匯入您要轉換的文字檔,並將它連結到新表格。

    1. 按一下 [檔案] > [開啟舊檔]

    2. 在 [開啟舊檔] 對話方塊中,選取並開啟您要在其中建立新表格的資料庫。

    3. 按一下 [外部資料] > [文字檔],然後依照每個步驟的指示進行,務必將表格連結到文字檔。

      Access 即會建立新資料表,並在 [瀏覽窗格] 中顯示該資料表。

  2. 將連結資料表中的資料匯出至 XML 資料檔案和 XML 結構描述檔案。

    1. 按一下 [外部資料] > [XML 檔案] (在 [匯出] 群組中)。

    2. 在 [匯出] 群組的 [XML 檔案] 對話方塊中,指定檔案名稱與格式,然後按一下 [確定]。

  3. 結束 Access

Excel

  1. 根據您從 Access 匯出的 XML 結構描述檔案建立 XML 對應

    如果出現 [多重根目錄] 對話方塊,請務必選擇 [dataroot],好讓您建立 XML 表格。

  2. 對應 dataroot 元素,藉此建立 XML 表格。 詳細資訊請參閱對應 XML 元素

  3. 匯入 XML 檔案 (您從 Access 匯出的檔案)。

附註: 

  • 有幾種 XML 結構描述元素架構不受 Excel 支援。 下列 XML 結構描述元素架構就無法匯入 Excel:

  • <任何>    此元素可讓您包含結構描述未宣告的元素。

  • <anyAttribute>    此元素可讓您包含結構描述未宣告的屬性。

  • 遞迴結構    例如,相同的 XML 元素在員工和主管的階層中形成好幾個巢狀層級,這就是常見的遞迴結構。 Excel 不支援超過一層深的遞迴結構。

  • 抽象元素    會在結構描述中宣告,不過永遠做為元素使用。 抽象元素取決於被抽象元素替代的其他元素。

  • 替代群組    只要有參照另一個元素,這些群組會允許元素進行交換。 透過 <substitutionGroup> 屬性,元素可指出其為另一個元素替代群組的成員。

  • 混合的內容    此內容透過在複雜類型定義中使用 mixed="true" 來宣告。 Excel 不支援複雜類型的簡單內容,但支援該複雜類型中定義的子標籤和屬性。

使用範例 XML 結構描述和 XML 資料檔案

如果您沒有 XML 檔案或是用於建立 XML 檔案的文字檔,下列範例資料具有您可用來測試 XML 對應的基本 XML 元素和結構。 透過以下步驟,您可以在電腦上將此範例資料儲存成檔案:

  1. 選取您要複製的檔案範例文字,然後按 Ctrl+C。

  2. 啟動 [記事本],然後按 Ctrl+V,貼上範例文字。

  3. 按下 Ctrl+S,以您所複製之範例資料的檔名和副檔名來儲存檔案。

  4. 在 [記事本] 中按 Ctrl+N,並重複執行步驟 1-3,為第二個範例文字建立檔案。

  5. 結束記事本。

範例 XML 資料 (Expenses.xml)

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Root>
  <EmployeeInfo>
    <Name>Jane Winston</Name>
    <Date>2001-01-01</Date>
    <Code>0001</Code>
  </EmployeeInfo>
  <ExpenseItem>
    <Date>2001-01-01</Date>
    <Description>Airfare</Description>
    <Amount>500.34</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-01</Date>
    <Description>Hotel</Description>
    <Amount>200</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-01</Date>
    <Description>Taxi Fare</Description>
    <Amount>100.00</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-01</Date>
    <Description>Long Distance Phone Charges</Description>
    <Amount>57.89</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-01</Date>
    <Description>Food</Description>
    <Amount>82.19</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-02</Date>
    <Description>Food</Description>
    <Amount>17.89</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-02</Date>
    <Description>Personal Items</Description>
    <Amount>32.54</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-03</Date>
    <Description>Taxi Fare</Description>
    <Amount>75.00</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-03</Date>
    <Description>Food</Description>
    <Amount>36.45</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-03</Date>
    <Description>New Suit</Description>
    <Amount>750.00</Amount>
  </ExpenseItem>
</Root>

範例 XML 結構描述 (Expenses.xsd)

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="Root">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element minOccurs="0" maxOccurs="1" name="EmployeeInfo">
          <xsd:complexType>
            <xsd:all>
              <xsd:element minOccurs="0" maxOccurs="1" name="Name" />
              <xsd:element minOccurs="0" maxOccurs="1" name="Date" />
              <xsd:element minOccurs="0" maxOccurs="1" name="Code" />
            </xsd:all>
          </xsd:complexType>
        </xsd:element>
        <xsd:element minOccurs="0" maxOccurs="unbounded" name="ExpenseItem">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="Date" type="xsd:date"/>
              <xsd:element name="Description" type="xsd:string"/>
              <xsd:element name="Amount" type="xsd:decimal" />
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

建立 XML 對應

您可以在活頁簿中新增 XML 結構描述來建立 XML 對應。 結構描述可從 XML 結構描述檔案 (.xsd) 複製而來,也可以由 Excel 嘗試從 XML 資料檔案 (.xml) 推斷出來。

  1. 按一下 [開發人員] > [來源]。

    [開發人員] 索引標籤上的 XML 命令

    如果沒有看到 [開發人員] 索引標籤,請參閱顯示開發人員索引標籤

  2. 在 [XML 來源] 工作窗格中,按一下 [XML 對應],再按一下 [新增]。

  3. [查詢] 清單中,按一下您想要開啟的磁碟機、資料夾或檔案所在的網際網路位置。

  4. 按一下檔案,然後按一下 [開啟]

    • 如果是 XML 結構描述檔案,XML 會根據 XML 結構描述建立 XML 對應。 如果出現 [多重根目錄] 對話方塊,請選擇 XML 結構描述檔案中所定義的其中一個根節點。

    • 如果是 XML 資料檔案,Excel 會嘗試從 XML 資料推斷 XML 結構描述,然後建立 XML 對應。

  5. 按一下 [確定]

    隨後 XML 對應便會出現在 [XML 來源] 工作窗格中。

對應 XML 元素

您將 XML 元素對應至 XML 表格中的單一對應及重複儲存格,以此建立儲存格和 XML 結構描述中的 XML 元素之關聯。

  1. 按一下 [開發人員] > [來源]。

    [開發人員] 索引標籤上的 XML 命令

    如果沒有看到 [開發人員] 索引標籤,請參閱顯示開發人員索引標籤

  2. 在 [XML 來源] 工作窗格中,選取您要對應的元素。

    若要選取不相鄰的元素,請按一下某個元素,然後在按住 Ctrl 的同時按一下您想要對應的每一個元素。

  3. 若要對應元素,請執行下列動作:

    1. 以滑鼠右鍵按一下選取的元素,然後按一下 [對應元素]。

    2. 在 [對應 XML 元素] 對話方塊中,選取一個儲存格,然後按一下 [確定]。

      提示: 您也可以拖曳所選取的元素到您想要其在工作表上出現的位置。

      已對應的元素會在 [XML 來源] 工作窗格以粗體字型表示。

  4. 決定您想要處理標籤和欄標題的方式:

    • 當您拖曳非重複的 XML 元素到工作表,以建立單一對應儲存格時,會顯示有三個命令的智慧標籤,您可以用來控制標題或標籤的位置:

      我的資料已有標題    若儲存格已經有標題 (資料左方或上方),請按一下這個選項來忽略 XML 元素標題。

      將 XML 標題放到左邊    按一下這個選項使用 XML 元素標題做為儲存格的標籤 (資料左方)。

      將 XML 標題放到上面    按一下這個選項使用 XML 元素標題做為儲存格標題 (資料上方)。

    • 當您拖曳重複 XML 元素到工作表,以在 XML 表格中建立重複儲存格時,XML 元素的名稱會自動做為表格的欄標題。 不過,您可以透過編輯欄標題儲存格,將欄標題變更為任何您想要的標題。

      [XML 來源] 工作窗格中,您可以按一下 [選項] 進一步控制 XML 表格的行為:

      對應時自動合併元件    選取核取方塊後,在您將元素拖曳至緊鄰 XML 表格的儲存格時,XML 表格會自動展開。

      我的資料有標題    選取此核取方塊後,當您將重複的元素對應到工作表時,現有資料可做為欄標題。

      附註: 

      • 如果所有的 XML 命令都呈現灰色,而您無法將 XML 元素對應到任何儲存格,表示活頁簿可能設為共用。 請按一下 [校閱] > [共用活頁簿],確認是否為共用狀態,並視需要移除共用。

        如果要在您想共用的活頁簿中對應 XML 元素,請將 XML 元素對應到您要的儲存格、匯入 XML 資料、移除所有的 XML 對應,然後共用活頁簿。

      • 如果您無法將包含資料的 XML 表格複製到另一個活頁簿,表示 XML 表格可能含有定義資料結構的相關聯 XML 對應。 雖然這個 XML 對應是儲存在活頁簿中,當您將 XML 表格複製到新的活頁簿時,並不會自動包含此 XML 對應。 Excel 會建立一個包含相同資料的 Excel 表格,而不是複製 XML 表格。 如果您希望新表格是 XML 表格,請執行下列動作:

        1. 使用您建立原始 XML 對應所用的 .xml 或 .xsd 檔案,將 XML 對應新增到新活頁簿。 如果您要將 XML 對應新增到其他活頁簿,則需要儲存這些檔案。

        2. 將 XML 元素對應至表格,使其成為 XML 表格。

      • 當您將重複的 XML 元素對應到合併儲存格時,Excel 會將儲存格取消合併。 這是意料中的事,因為重複元素是設計為只能用在取消合併的儲存格中。

        您可以將單一、非重複的 XML 元素對應到合併的儲存格,但是不能將重複的 XML 元素 (或是包含重複元素的元素) 對應到合併的儲存格。 儲存格會被取消合併,而元素會被對應到指標所在的儲存格。

提示: 

  • 您可以取消對應您不想使用的 XML 元素,或是防止在匯入 XML 數據時覆寫儲存格的內容。 例如,您可以從單一儲存格或含有您在匯入 XML 檔案時不想覆寫之公式的重複儲存格,暫時取消對應 XML 元素。 匯入完成後,您可以再次將 XML 元素對應到公式儲存格,以便將公式的結果匯出至 XML 資料檔。

  • 若要取消對應 XML 元素,請在 [XML 來源] 工作窗格中,以滑鼠右鍵按一下其名稱,然後按一下 [移除元素]。

顯示開發人員索引標籤

如果您沒有看到 [開發人員] 索引標籤,請執行下列步驟使其顯示:

  • 在 Excel 2010 和較新版本中:

    1. 按一下 [檔案] > [選項]

    2. 按一下 [自訂功能區] 類別。

    3. 在 [主要索引標籤] 底下,核取 [開發人員] 方塊,然後按一下 [確定]。

  • 在 Excel 2007 中:

    1. 按兩下 [Excel 選項]> [Microsoft Office 按鈕]

    2. 按一下 [常用] 類別。

    3. 在 [使用 Excel 時最常用的選項] 底下,核取 [在功能區顯示 [開發人員] 索引標籤] 方塊,然後按一下 [確定]。

另請參閱

刪除活頁簿中的 XML 對應資訊

附加或覆寫對應的 XML 數據

Excel 中的 XML 概觀

匯入 XML 數據

匯出 XML 數據

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。