Excel用於xml導出的格式取決於添加的XML模式。這可以是明確創建和添加或 - 如我懷疑你的情況 - 已被隱式/自動生成由Excel。
在我的示例中,我有兩個colums,第一個通過XML-Schema格式化日期時間,第二個是普通文本,僅用於在Excel(列格式)中表示日期。

當我出口這是XML,我得到兩個看似完全不同的結果:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<dataroot>
<Tabelle11>
<Title_1>2009-10-12T00:00:00.000</Title_1>
<Title_2>40098</Title_2>
</Tabelle11>
<Tabelle11>
<Title_1>2000-01-01T00:00:00.000</Title_1>
<Title_2>36526</Title_2>
</Tabelle11>
</dataroot>
當我檢查了XML的模式(例如,使用「Debug.Print ActiveWorkbook.XmlMaps(1)名爲.schemas(1).XML「)我看到的差(僅代碼段,而不是完整的文件):
<xsd:element name="Title_1" minOccurs="0" od:jetType="datetime" od:sqlSType="datetime" type="xsd:dateTime">
<xsd:annotation>
<xsd:appinfo>
<od:fieldProperty name="Format" type="10" value="dd.mm.yyyy"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="Title_2" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
<xsd:annotation>
<xsd:appinfo>
<od:fieldProperty name="Format" type="10" value="@"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
第一列是在格式日期時間的模式,第二i s varchar。同樣,你甚至可能不知道,Excel是如何處理你的XML數據的,因爲這個模式是自動生成的(如果我在Excel 2003中正確記得有消息表明模式已經爲你生成)
現在如何實現這一點 - 尤其是在現有文件中:我會嘗試提取XML模式(請參閱上文),將其另存爲something.xsd,根據需要調整模式並導入此新模式。 Bummer是你必須再次設置映射(或者試試這個:Excel 2007 XML Source Maps - Refreshing Schemas)。通常我讓MS Access生成我的XML模式,即生成所需的表格,插入一些值並將表格顯示爲XML(勾選添加模式的選項)。
我希望這個大綱能讓您瞭解如何繼續。
問候
安德烈亞斯
你如何導出XML? –
我正在使用開發人員選項卡上的導出按鈕。順便說一下,我使用的是Excel 2007。 –
您是否有能力編輯Excel文件,或者是否有某些原因需要在導出之前保持原樣? –