2016-03-05 49 views
1

我正在嘗試使用IronScheme和Open XML SDK來讀取XLSX文件。如何使用類型參數調用IronScheme clr-call

Open XML SDK API包含一種方法,它在C#中編寫爲worksheetPart.Worksheet.Elements<SheetData>(),其中傳遞類型參數有助於過濾給定類型的元素。

如何將它轉換爲IronScheme以便我可以通過SheetData類型參數?我嘗試了以下電話,但他們都返回的所有元素:提前

(clr-call Worksheet Elements sheet)    ; sure, will return all 
(clr-call Worksheet (Elements Object) sheet) ; syntax test -> allowed, but returns all 
(clr-call Worksheet (Elements SheetData) sheet) ; sadly this also returns all 

謝謝,弗蘭克

回答

0

您正在使用「類型提示」語法(這是真的,因爲它應該報告不是一個bug找到)。

的通用語法是:

(clr-call Worksheet (Elements #(SheetData)) sheet) 

您在傳遞一般類型參數作爲方法的載體。

不幸的是,這與爲類型指定泛型類型參數不同。

我會把它放在TODO列表上。

+0

感謝leppie - 順便說一句,非常感謝IronScheme! 提出的語法不適用於我(使用最新的預編譯版本[https://ironscheme.codeplex.com/releases/view/103028](CodePlex)。 –

+0

我通過顯示工作表元素w/o type'(clr-call Worksheet Elements sheet)'和上面提到的語法 - 相同的結果和兩個結果列表確實包含與SheetData不同的類型的元素 如果這是潛在的版本問題,我可以從Github否則我可以提供更多的細節如何重現 - 但這也需要Open XML安裝。 –

+0

@FrankRuben:您可以在這裏獲得最新版本:https://ci.appveyor.com/project/leppie/ironscheme/branch/master(轉到FX2構建,然後是artefact),但它不應該有所作爲。我將嘗試重新生成泛型問題,可能與OpenXML API中的繼承有關。 – leppie

相關問題