Tvorba office dokumentů v .NET   zodpovězená otázka

C#, Office, .NET, .NET Tips

Zdravím,

měl bych asi trochu naivní dotaz. Ale hledám nějaké rozumné řešení, jak v .NET vytvářet office dokumenty. Konkrétně word a excel.

Jedná se o komerční aplikaci, kde např. v excelu budou i věci jako kontigenční tabulky, grafy, vzorce, souhrny atd...

Obvykle používám knihovnu od http://www.e-iceblue.com/ ale zákazník není ochoten zakoupit licenci.

Máte někdo nějaké zkušenosti s nějakou free knihovnou (i pro komerční použití), případně s jakou?

Díky.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Bude na cílových počítačích nainstalován Microsoft Office?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nebude.

Je třeba toto celé vytvořit na serveru, kde office pravděpodobně nebude také.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jsou obecně dvě možnosti:

A: Využít application COM object model office aplikací

V dnešní době už se moc nepoužívá. Jedná se o volání přímo office aplikace přes jeho COM rozhraní (ActiveX).

Výhodou je, že lze v podstatě provést cokoli co umí samotná office aplikace. Nevýhodou je to COM rozhraní, tedy nutnost volání z .NET přes interop knihovny, a také to způsobuje problémy s referencemi s různými verzemi office, programování není tak pohodlné jako u managed code. Další nevýhodou je nutnost instalace Microsoft Office na počítači (+ nutnost office licence). A dále se toto z výkonnostních důvodů nehodí pro Webové aplikace, kde je na serveru, který obsluhuje mnoho requestů nereálné volat COM objekty Office aplikace.

B: Použít .NET managed knihovnu

Zde je problém, že ty free nemusí umět vše a moc jich není.

Já používám tyto

Excel:

1) Knihovna NPOI (http://npoi.codeplex.com)

Pracuje se pouze se soubory formátu .xls

Má docela neohrabané API, protože vznikla jako portace z jazyku Java

Návod viz. http://www.dotnetportal.cz/blogy/15/Null...

2) ExcelPackage library (http://excelpackage.codeplex.com)

Pracuje pouze se soubory formátu .xlsx

Návod zde http://www.codeproject.com/Articles/1703...

nebo zde http://keyvan.io/use-excelpackage-to-man...

Pokud potřebujete umět pracovat s formátem xls i xlsx, musíte knihovny použít obě.

Word:

Microsoft Office Open XML SDK

Jedná se o sadu managed .NET tříd postavených nad System.IO.Packaging API, umožňují tvorbu Open XML Office dokumentů.

Návod zde http://www.dotnetportal.cz/blogy/15/Null...

nebo zde http://www.dotnetportal.cz/blogy/15/Null...

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Děkuji za podrobnější rozbor. S NPOI jsem se již kdysi jednou potkal a nebylo to nejpříjemnější setkání a dodnes kolem sebe chodíme oklikou...

Napadlo mě použití právě Microsoft Office Open XML SDK, nicméně nejsem si jist, jak je to s tou licencí (licencování bylo vždy mé slabé místo), respektive, zda toto lze používat i v komerčních projektech zcela beztrestně.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano Open XML SDK je volně k distribuci s aplikací.

Koukám, že v současnosti již existuje verze 2.5 pro .NET 4.0 takže tu můžete použít, ke stažení je zde http://www.microsoft.com/en-us/download/....

Já jsem (viz. návody) Open XML SDK používal pouze pro Word. Dá se použít i pro Excel, ale doporučuji se nejprve podívat zda pro ten případ co potřebujete řešit nebude jednodušší použít zmíněnou ExcelPackage library.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Thanks, It is helpful information.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Thanks, It is helpful information.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Thanks, it is helpful for me.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback