若要在 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 即會建立新資料表,並在 [瀏覽窗格] 中顯示該資料表。
-
-
將連結資料表中的資料匯出至 XML 資料檔案和 XML 結構描述檔案。
-
按一下 [外部資料] > [XML 檔案] (在 [匯出] 群組中)。
-
在 [匯出] 群組的 [XML 檔案] 對話方塊中,指定檔案名稱與格式,然後按一下 [確定]。
-
-
結束 Access
Excel
-
根據您從 Access 匯出的 XML 結構描述檔案建立 XML 對應。
如果出現 [多重根目錄] 對話方塊,請務必選擇 [dataroot],好讓您建立 XML 表格。
-
對應 dataroot 元素,藉此建立 XML 表格。 詳細資訊請參閱對應 XML 元素。
-
匯入 XML 檔案 (您從 Access 匯出的檔案)。
附註:
-
有幾種 XML 結構描述元素架構不受 Excel 支援。 下列 XML 結構描述元素架構就無法匯入 Excel:
-
<任何> 此元素可讓您包含結構描述未宣告的元素。
-
<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 結構描述檔案,XML 會根據 XML 結構描述建立 XML 對應。 如果出現 [多重根目錄] 對話方塊,請選擇 XML 結構描述檔案中所定義的其中一個根節點。
-
如果是 XML 資料檔案,Excel 會嘗試從 XML 資料推斷 XML 結構描述,然後建立 XML 對應。
-
-
按一下 [確定]。
隨後 XML 對應便會出現在 [XML 來源] 工作窗格中。
對應 XML 元素
您將 XML 元素對應至 XML 表格中的單一對應及重複儲存格,以此建立儲存格和 XML 結構描述中的 XML 元素之關聯。
-
按一下 [開發人員] > [來源]。
如果沒有看到 [開發人員] 索引標籤,請參閱顯示開發人員索引標籤。
-
在 [XML 來源] 工作窗格中,選取您要對應的元素。
若要選取不相鄰的元素,請按一下某個元素,然後在按住 Ctrl 的同時按一下您想要對應的每一個元素。
-
若要對應元素,請執行下列動作:
-
以滑鼠右鍵按一下選取的元素,然後按一下 [對應元素]。
-
在 [對應 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 對應是儲存在活頁簿中,當您將 XML 表格複製到新的活頁簿時,並不會自動包含此 XML 對應。 Excel 會建立一個包含相同資料的 Excel 表格,而不是複製 XML 表格。 如果您希望新表格是 XML 表格,請執行下列動作:
-
使用您建立原始 XML 對應所用的 .xml 或 .xsd 檔案,將 XML 對應新增到新活頁簿。 如果您要將 XML 對應新增到其他活頁簿,則需要儲存這些檔案。
-
將 XML 元素對應至表格,使其成為 XML 表格。
-
-
當您將重複的 XML 元素對應到合併儲存格時,Excel 會將儲存格取消合併。 這是意料中的事,因為重複元素是設計為只能用在取消合併的儲存格中。
您可以將單一、非重複的 XML 元素對應到合併的儲存格,但是不能將重複的 XML 元素 (或是包含重複元素的元素) 對應到合併的儲存格。 儲存格會被取消合併,而元素會被對應到指標所在的儲存格。
-
-
提示:
-
您可以取消對應您不想使用的 XML 元素,或是防止在匯入 XML 數據時覆寫儲存格的內容。 例如,您可以從單一儲存格或含有您在匯入 XML 檔案時不想覆寫之公式的重複儲存格,暫時取消對應 XML 元素。 匯入完成後,您可以再次將 XML 元素對應到公式儲存格,以便將公式的結果匯出至 XML 資料檔。
-
若要取消對應 XML 元素,請在 [XML 來源] 工作窗格中,以滑鼠右鍵按一下其名稱,然後按一下 [移除元素]。
顯示開發人員索引標籤
如果您沒有看到 [開發人員] 索引標籤,請執行下列步驟使其顯示:
-
在 Excel 2010 和較新版本中:
-
按一下 [檔案] > [選項]。
-
按一下 [自訂功能區] 類別。
-
在 [主要索引標籤] 底下,核取 [開發人員] 方塊,然後按一下 [確定]。
-
-
在 Excel 2007 中:
-
按兩下 [Excel 選項]> [Microsoft Office 按鈕]。
-
按一下 [常用] 類別。
-
在 [使用 Excel 時最常用的選項] 底下,核取 [在功能區顯示 [開發人員] 索引標籤] 方塊,然後按一下 [確定]。
-