2011-03-07 66 views
2

我正在通過web服務在我的系統中公開表格以在Excel工作表中使用(作爲XML源)。這些表格可以包含標題,其中包含XML元素名稱中無效的空格和其他字符。 Excel很好,我的系統很好,但是中間格式(XML)不是。帶有空格的Excel XML表格標題

那麼,XML Source可以告訴Excel(通過架構或數據)使用不同於元素名稱的表格標題嗎?例如。是這樣的:

<xs:element name="place-of-origin"> 
    <xs:annotation> 
    <xs:appinfo><od:displayName>Place of origin</od:displayName></xs:appinfo> 
    </xs:annotation> 
</xs:element> 

編輯:這裏是一個sample XML filecorresponding XSD。在Excel中打開這個表會產生一個列標題爲「sex_of_person」的表 - 所以問題是:XML或模式如何表達這個標題應該是「人的性別」(帶空格)或「#$!%」(請原諒我)或其他任何字符串無效,作爲XML name

+0

請問您可以添加一個示例中間XML數據? – Filburt 2011-03-09 10:28:32

+0

增加了一點細節。 – 2011-03-10 23:55:55

+0

您是否認爲/很樂意使用XSL轉換?是否有某些原因可以避免該選項? – bochgoch 2011-04-08 09:24:33

回答

0

你說你使用XML作爲「數據源」,從而使用Excel的XML功能(從版本2003開始)。

當您在Excel中打開XML文件時,Excel爲您提供了將其轉換爲可讀格式的選項(併爲您提供了自動引用XML模式的選項)。

完成此操作後,Excel在後臺將XML文件(以及隱式生成的XML模式,但您可以使用您的模板)作爲XML源使用。

Excel 2007 with opened XML-file and XML-source

從現在開始爲Excel列標題是可以改變的(Excel有從XML文件鏈接sex_of_person表中的第二列的內部的方式)。 List with changed column headers

爲了演示這個,我在我的例子中刪除了除一個之外的所有行。注意當我在XML窗格中選擇「sex_of_person」時,Excel如何選擇第二行「人的性別」(,而不是標題)。現在,當我單擊刷新(在我的德語版本中:「Daten aktualisieren」)時,Excel將重新加載XML文件並將值插入相應的列中。使用「導入」,您甚至可以更改XML源(只要格式保持不變)。

因此,從現在開始,我不打開Excel中的XML文件(就像您可能已經完成的那樣),但是我打開這個Excel文件,從現在開始定義演示文稿(即從XML元素到列的鏈接)幷包含指向XML文件的鏈接。

我不確定這是你的意思。

Registers Andreas

+0

對,這不是我的意思。我不是Excel用戶,我是XML數據饋送的提供者。我希望用戶的* initial *外觀儘可能接近源數據。 – 2011-09-14 15:03:27

+0

你有沒有辦法爲用戶提供Excel(類似於你的XML源的'前端')?她會打開Excel表格並刷新導入。或者:在服務器上創建Excel文件(例如,生成Office Open XML格式)如何? – 2011-09-15 05:58:35