將 XML 元素映射到 XML 映射中的儲存格

套用到
Microsoft 365 Excel Excel 2024 Excel 2021

要在 Excel 中匯入匯出 XML 資料 ,請使用 XML 映射,將 XML 元素與儲存格中的資料關聯起來。 這種關聯能幫助你達成理想的結果。 要建立 XML 映射,你需要一個 XML 結構檔 (.xsd) 和一個 XML 資料檔 (.xml) 。 建立 XML 映射後,你可以依照 XML 元素的映射方式。

秘訣

欲了解更多關於 XML 與 Excel 搭配使用的資訊,請參閱 XML 在 Excel 中的概述

注意

Windows 桌面版 Excel 是唯一提供 XML 映射功能的版本。 這些工具在 Mac 版 Excel 或 Excel 網頁版中無法使用。

XML 地圖是舊有的功能。 在許多情況下,使用 Excel 中的 Power Query 匯入和轉換 XML 資料,尤其是複雜或巢狀的 XML 結構。

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

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

如果你沒有必要的 XML 檔案,也可以把想用的資料存成文字檔來建立。 接著可以使用 Access 和 Excel,將文字檔轉換為您所需要的 XML 檔案。 方法如下:

Access

  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 匯出的檔案)。

或者,你也可以使用 Power Query 直接匯入 XML 資料,而不必建立 XML 架構檔案。

注意

  • 有幾種 XML 結構描述元素架構不受 Excel 支援。 下列 XML 結構描述元素架構就無法匯入 Excel:
  • <任何> This 元素允許你包含結構中未宣告的元素。
  • <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 結構檔案,Excel 會根據該 XML 架構建立一個 XML 映射。 如果出現 [多重根目錄] 對話方塊,請選擇 XML 結構描述檔案中所定義的其中一個根節點。
    • 對於 XML 資料檔案,Excel 嘗試從 XML 資料推導出 XML 架構,然後建立 XML 映射。
  5. 選取 [確定]
    XML 映射會出現在 XML 原始碼 工作窗格中。

對應 XML 元素

將 XML 元素映射到單一映射的儲存格和重複的儲存格,這樣你就能在 XML 架構中建立儲存格與 XML 資料元素之間的關聯。

  1. 選擇開發來源>。
    [開發人員] 索引標籤上的 XML 命令
    如果沒有看到 [開發人員] 索引標籤,請參閱顯示開發人員索引標籤

  2. 在 [XML 來源] 工作窗格中,選取您要對應的元素。
    要選取不相鄰的元素,先選一個元素,然後按住 Ctrl 鍵,選取你想要映射的每個元素。

  3. 要映射元素,請完成以下步驟:

    1. 右鍵點擊選取的元素,然後選擇 地圖元素

    2. Map XML 元素 對話框中,選擇一個儲存格並選擇 確定

      秘訣

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

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

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

    • 當您拖曳非重複的 XML 元素到工作表,以建立單一對應儲存格時,會顯示有三個命令的智慧標籤,您可以用來控制標題或標籤的位置:
      我的資料已有標題 選擇此選項以忽略 XML 元素標題,因為儲存格已在資料左側或資料) 上方 (標題。
      將 XML 標題置於左側 選擇此選項,將 XML 元素標題作為資料) 左側 (的儲存格標籤。
      在上方放置 XML 標頭 選擇此選項,將 XML 元素標頭作為資料) 上方的儲存格標 (。

    • 當您拖曳重複 XML 元素到工作表,以在 XML 表格中建立重複儲存格時,XML 元素的名稱會自動做為表格的欄標題。 不過,您可以透過編輯欄標題儲存格,將欄標題變更為任何您想要的標題。
      XML 原始碼 工作窗格中,選擇 選項 以進一步控制 XML 資料表的行為:
      映射時自動合併元素勾選此勾選框後,當你將元素拖曳到相鄰的儲存格時,Excel 會自動展開 XML 表格。
      我的資料有標題 選取此核取方塊後,當您將重複的元素對應到工作表時,現有資料可做為欄標題。

      注意

      • 如果所有的 XML 命令都呈現灰色,而您無法將 XML 元素對應到任何儲存格,表示活頁簿可能設為共用。 選擇 「檢視>分享工作簿 」以驗證並視需要將其從共享使用中移除。

如果要在您想共用的活頁簿中對應 XML 元素,請將 XML 元素對應到您要的儲存格、匯入 XML 資料、移除所有的 XML 對應,然後共用活頁簿。 > - 如果你無法將包含資料的 XML 資料表複製到另一個工作簿,該 XML 資料表可能會有一個定義資料結構的 XML 映射。 雖然這個 XML 對應是儲存在活頁簿中,當您將 XML 表格複製到新的活頁簿時,並不會自動包含此 XML 對應。 Excel 會建立一個包含相同資料的 Excel 表格,而不是複製 XML 表格。 如果你想讓新的資料表成為 XML 資料表,請完成以下步驟: > 1. 使用您建立原始 XML 對應所用的 .xml 或 .xsd 檔案,將 XML 對應新增到新活頁簿。 如果您要將 XML 對應新增到其他活頁簿,則需要儲存這些檔案。 > 1. 將 XML 元素對應至表格,使其成為 XML 表格。 > > - 當你將重複的 XML 元素映射到合併的儲存格時,Excel 會將該儲存格重新合併。 這是意料中的事,因為重複元素是設計為只能用在取消合併的儲存格中。

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

秘訣

  • 你可以解除不想要使用的 XML 元素,或防止匯入 XML 資料時儲存格內容被覆寫。 例如,您可以從單一儲存格或含有您在匯入 XML 檔案時不想覆寫之公式的重複儲存格,暫時取消對應 XML 元素。 匯入完成後,你可以再次將 XML 元素映射到公式儲存格,這樣就能將公式的結果匯出到 XML 資料檔。
  • 要解除 XML 元素的映射,請在 XML Source 工作窗格中右鍵點擊其名稱,然後選擇 「移除元素」。

顯示開發人員索引標籤

如果你看不到 開發者 標籤,請依照以下步驟顯示:

  1. 選取 [檔案選項]>
  2. 選擇 自訂彩帶 類別。
  3. 主分頁下,勾選 開發者 方框,然後選擇 確定

另請參閱

從工作簿中刪除 XML 地圖資訊

附加或覆寫映射的 XML 資料

Excel 中 XML 概述

匯入 XML 資料

匯出 XML 資料