[Open XML] Le SDK Open XML disponible en Technical Preview !
Que d'annonce en ce moment sur Open XML ! Cela montre bien la tendance alors que le vote final ISO DIS 29500 laisse encore plusieurs mois au National Body de chaque pays (pour la France c'est l'AFNOR qui occupe cette position, et d'ailleurs nous y travaillons durement en ce moment!).
Le TechEd, qui a pris place à Orlando cette semaine, a été l'occasion d'une annonce intéressante pour Open XML, notamment pour les développeurs .NET puisque c'est tout simplement la sortie du SDK d'une API .NET pour Open XML.
L'espace de nom System.IO.Packaging - issu du framework .NET 3 - ne permet de manipuler que la structure interne du document - structure Open Packaging Convention - mais pas son contenu,du moins il fallait générer/modifier le XML "à la main" pour arriver à ses fins. Avec ce SDK - lequel reste seulement une preview comme le rappel Brian Jones - qui fournit un ensemble d'API en complément de .NET 3, vous permet de créer/manipuler des documents en utilisant le concept similaire à OpenXML4J de parties fortement typées. Le SDK fournit maintenant des parties et des relations typées, et non plus générique comme cela l'était avec les classes PackagePart ou PackageRelationship
Vous pouvez tester ce SDK en le téléchargeant à l'adresse : http://www.microsoft.com/downloads/details.aspx?FamilyId=AD0B72FB-4A1D-4C52-BDB5-7DD7E816D046&displaylang=en
Pour tous vos précieux retours sur ce SDK (idem pour OpenXML4J :p) vous pouvez utilisé un forum mis en place exprès pour l'occasion : http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=1647&SiteID=1
Ayant les WygDAys demain (dont 2 sessions sur Open XML à préparer ... timing etc, les démos et le contenu étant déjà pret depuis quelques temps) je n'ai pas encore eu l'ocassion de tester le SDK, mais cela devrait se faire sous peu. Voici les exemples issu du blog de Brian Jones :
Un exemple pour supprimer la partie peincipale d'un docuent Excel :
public void ValidateSimplePackage(string xlsxFile)
{
SpreadsheetDocument xlsxDoc = SpreadsheetDocument.Open(xlsxFile, true);
Using(xlsxDoc)
{
// Remove the main workbook part.
xlsxDoc.DeletePart(xlsxDoc.WorkbookPart);
// Validate the package. Will return an exception
// because of the missing part.
xlsxDoc.Validate(null);
}
}
Obtenir les commentaires d'un document WordprocessingML :
public static string GetCommentsFromDocument(string document)
{
string comments = null;
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(document, true))
{
MainDocumentPart mainPart = wordDoc.MainDocumentPart;
CommentsPart commentsPart = mainPart.CommentsPart;
using (StreamReader streamReader = new StreamReader(commentsPart.GetStream()))
{
comments = streamReader.ReadToEnd();
}
}
return comments;
}
Les directions du projet OpenXML4J
Etonnament, certaines des fonctionnalités présentes dans le SDK, par exemple la validation du paquet, les parties fortement typées, ... sont des éléments soient déjà présents (la méthode de validation n'est pas implémentée en revanche pour le moment) soit planifiés comme vous pouvez le constater sur le site officiel du projet : http://www.openxml4j.org/Documentation/Overview.html
En gros que de bonnes nouvelles, reste plus qu'à tester le SDK ... et à avancer OpenXML4J selon le planning (ce qui semble être bien partie !)
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :