要在 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
匯入您要轉換的文字檔,並將它連結到新表格。
- 選取 [檔案]> [開啟]。
- 在 [開啟舊檔] 對話方塊中,選取並開啟您要在其中建立新表格的資料庫。
- 選擇 外部資料>文字檔,並依照每個步驟的指示操作,確保你將表格與文字檔連結。
Access 即會建立新資料表,並在 [瀏覽窗格] 中顯示該資料表。
將連結資料表中的資料匯出至 XML 資料檔案和 XML 結構描述檔案。
- 在匯出群組) 中選擇外部資料>更多>XML 檔案 (。
- 在 「匯出-XML 檔案 」對話框中,指定檔案名稱與格式,並選擇 確定。
結束 Access
Excel
- 根據您從 Access 匯出的 XML 結構描述檔案建立 XML 對應。
如果出現 [多重根目錄] 對話方塊,請務必選擇 [dataroot],好讓您建立 XML 表格。 - 對應 dataroot 元素,藉此建立 XML 表格。 詳細資訊請參閱對應 XML 元素。
- 匯入 XML 檔案 (您從 Access 匯出的檔案)。
或者,你也可以使用 Power Query 直接匯入 XML 資料,而不必建立 XML 架構檔案。
注意
- 有幾種 XML 結構描述元素架構不受 Excel 支援。 下列 XML 結構描述元素架構就無法匯入 Excel:
- <任何> This 元素允許你包含結構中未宣告的元素。
- <anyAttribute> 這個元素允許你包含結構中未宣告的屬性。
- 遞迴結構 遞迴結構的常見例子是員工與經理階層,其中相同的 XML 元素被巢狀分布在數層級。 Excel 不支援超過一層深的遞迴結構。
- 抽象元素 這些元素本應在結構中宣告,但絕不會作為元素使用。 抽象元素取決於被抽象元素替代的其他元素。
- 替換群 這些群允許在引用其他元素的地方交換元素。 元素透過 substitutionGroup 屬性表示它是另一個元素替代群組<的成員。>
- 混合內容 此內容透過在複雜型別定義中使用 mixed=“true” 來宣告。 Excel 不支援複雜類型的簡單內容,但支援該複雜類型中定義的子標籤和屬性。
使用範例 XML 結構描述和 XML 資料檔案
以下範例資料包含基本的 XML 元素與結構,若您沒有 XML 檔案或文字檔來建立 XML 檔案,可用來測試 XML 映射。 以下是您可以將這些範例資料儲存到電腦檔案的方法:
- 選取您要複製的檔案範例文字,然後按 Ctrl+C。
- 啟動 [記事本],然後按 Ctrl+V,貼上範例文字。
- 按下 Ctrl+S,以您所複製之範例資料的檔名和副檔名來儲存檔案。
- 在記事本按 Ctrl+N,重複步驟 1-3,建立第二個範例文字的檔案。
- 結束記事本。
範例 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) 推導出一個結構。
選擇開發來源>。
如果沒有看到 [開發人員] 索引標籤,請參閱顯示開發人員索引標籤。在 XML 原始碼 工作窗格中,選擇 XML 映射,然後選擇 新增。
在 「查找」 清單中,選擇包含你想開啟檔案的磁碟、資料夾或網路位置。
選擇檔案,然後選擇 開啟。
- 對於 XML 結構檔案,Excel 會根據該 XML 架構建立一個 XML 映射。 如果出現 [多重根目錄] 對話方塊,請選擇 XML 結構描述檔案中所定義的其中一個根節點。
- 對於 XML 資料檔案,Excel 嘗試從 XML 資料推導出 XML 架構,然後建立 XML 映射。
選取 [確定]。
XML 映射會出現在 XML 原始碼 工作窗格中。
對應 XML 元素
將 XML 元素映射到單一映射的儲存格和重複的儲存格,這樣你就能在 XML 架構中建立儲存格與 XML 資料元素之間的關聯。
選擇開發來源>。
如果沒有看到 [開發人員] 索引標籤,請參閱顯示開發人員索引標籤。在 [XML 來源] 工作窗格中,選取您要對應的元素。
要選取不相鄰的元素,先選一個元素,然後按住 Ctrl 鍵,選取你想要映射的每個元素。要映射元素,請完成以下步驟:
右鍵點擊選取的元素,然後選擇 地圖元素。
在 Map XML 元素 對話框中,選擇一個儲存格並選擇 確定。
秘訣
您也可以拖曳所選取的元素到您想要其在工作表上出現的位置。
已對應的元素會在 [XML 來源] 工作窗格以粗體字型表示。
決定您想要處理標籤和欄標題的方式:
當您拖曳非重複的 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 工作窗格中右鍵點擊其名稱,然後選擇 「移除元素」。
顯示開發人員索引標籤
如果你看不到 開發者 標籤,請依照以下步驟顯示:
- 選取 [檔案選項]>。
- 選擇 自訂彩帶 類別。
- 在 主分頁下,勾選 開發者 方框,然後選擇 確定。