Office 2007 – klient Štěpán Bechynský Developer Evangelist Microsoft s.r.o.
Agenda OpenXMLVSTO
Agenda OpenXMLVSTO
Office dokumenty dnes Office 2000/XP „Office automation“ použitím nativního COM objektového modelu Pro scénáře na straně serveru → instalace Office na server Nepodporované Slabý výkon Bez škálovatelnosti Office 2003 Lepší podpora pro scénáře na straně serveru WordML a ExcelML Přístup k datům pomocí VSTO (ServerDocument) Vyžaduje znalost XSLT a Office 2003 XML schémat Berličky CSV soubor s příponou xls
OpenXML – Kompatibilita Podpora všech Office formátů Office 2000, Office XP, Office 2003 budou podporovat nové formáty Opravné balíky pro zabezpečení kompatibility při uvedení Office 2007 Otevření, editace a uložení nových formátů Přednastavený formát pro Office 2007 můžete změnit na starší binární formát
Architektura OpenXML Dotaznik. docx Pohled uživatele: jeden Office “soubor” Pohled vývojáře: modulární soubo r Dotaznik. docx Balíček (zip archiv) [content types].xml Části dokumentu word / xl / ppt Dokument, Aplikace, uživatelské vlastnosti dokumentu docProps Vztahy _rels Uživatelská XML makra, … custom fld
Přínosy Lepší interoperabilita Publikovaná (ECMA) specifikace formátu Meziplatformní interoperabilita Nové integrační scénáře Vhodné pro integraci dokumentů a LOB systémů Práce na straně serveru bez použití Office API Separace uživatelských dat Velikost souborů 50-75% redukce velikosti
.NET 3.0 Packaging API System.IO.Packaging namespace Přidávání častí dokumentu Načítání a úprava obsahu Tvorba nových vztahů Důležité třídy PackagePackagePartPackageRelationship
System.IO.Packaging using (Package package = Package.Open(packagePath, FileMode.Open,FileAccess.ReadWrite)) { Uri uriPartTarget = new Uri("/word/styles1.xml", UriKind.Relative); PackagePart newPackagePart = package.CreatePart(uriPartTarget, "application/vnd.ms-word.styles+xml"); using (FileStream fileStream = new FileStream(stylePath, FileMode.Open, FileAccess.Read)) { CopyStream(fileStream, newPackagePart.GetStream()); } } 1. Otevření balíčku
System.IO.Packaging using (Package package = Package.Open(packagePath, FileMode.Open,FileAccess.ReadWrite)) { Uri uriPartTarget = new Uri("/word/styles1.xml", UriKind.Relative); PackagePart newPackagePart = package.CreatePart(uriPartTarget, "application/vnd.ms-word.styles+xml"); using (FileStream fileStream = new FileStream(stylePath, FileMode.Open, FileAccess.Read)) { CopyStream(fileStream, newPackagePart.GetStream()); } } 1. Otevření balíčku 2. Přístup k části dokumentu (GetPart)
System.IO.Packaging using (Package package = Package.Open(packagePath, FileMode.Open,FileAccess.ReadWrite)) { Uri uriPartTarget = new Uri("/word/styles1.xml", UriKind.Relative); PackagePart newPackagePart = package.CreatePart(uriPartTarget, "application/vnd.ms-word.styles+xml"); using (FileStream fileStream = new FileStream(stylePath, FileMode.Open, FileAccess.Read)) { CopyStream(fileStream, newPackagePart.GetStream()); } } 1. Otevření balíčku 2. Přístup k části dokumentu (GetPart) 3. Vytvoření části dokumentu (CreatePart)
System.IO.Packaging using (Package package = Package.Open(packagePath, FileMode.Open,FileAccess.ReadWrite)) { Uri uriPartTarget = new Uri("/word/styles1.xml", UriKind.Relative); PackagePart newPackagePart = package.CreatePart(uriPartTarget, "application/vnd.ms-word.styles+xml"); using (FileStream fileStream = new FileStream(stylePath, FileMode.Open, FileAccess.Read)) { CopyStream(fileStream, newPackagePart.GetStream()); } } 1. Otevření balíčku 2. Přístup k části dokumentu (GetPart) 3. Vytvoření části dokumentu (CreatePart) 4. Přidání obsahu do části dokumentu
OpenXML
Agenda OpenXMLVSTO
VSTO v3 Podpora vývoje aplikací pro Office 2007 Integrace do Visual Studia 2005
Ribbon
Task Pane
Závěr OpenXML Jednoduchá manipulace a vytváření dokumentů VSTO Rozšíření Visual Studia 2005 o podporu vývoje pro Office 12