將 XML 元素對應至 XML 對應中的儲存格

套用到
Microsoft 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 檔案。 方法如下:

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

注意

  • 有幾種 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 結構描述檔案,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 來源] 工作窗格中,以滑鼠右鍵按一下其名稱,然後按一下 [移除元素]

顯示開發人員索引標籤

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

  1. 點擊 檔案>選項
  2. 按一下 [自訂功能區] 類別。
  3. 在 [主要索引標籤] 底下,核取 [開發人員] 方塊,然後按一下 [確定]

另請參閱

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

附加或覆寫映射的 XML 資料

Excel 中 XML 概述

匯入 XML 資料

匯出 XML 資料