Jak může být dokument Word vytvořený v C #?

hlasů
73

Mám projekt, kde bych rád generování exportu sestavy ve formátu MS Word. Tato zpráva bude obsahovat obrázky / grafy, tabulky a textu. Jaký je nejlepší způsob, jak to udělat? Nástroje třetích stran? Jaké jsou vaše zkušenosti?

Položena 13/08/2008 v 23:07
zdroj uživatelem
V jiných jazycích...                            


18 odpovědí

hlasů
49

Odpověď bude na když je aplikace spuštěna na serveru mírně závislé nebo pokud je spuštěna v klientském počítači. Pokud jsou spuštěny na serveru a pak budete chtít použít jeden z formátů generace úřad založen na XML, jako jsou znát problémy při použití automatizace Office na serveru .

Nicméně, pokud pracujete na klientském počítači pak máte na výběr buď pomocí automatizace Office nebo ve formátu Office Open XML (viz odkazy níže), který je podporován v Microsoft Office 2000 a až nativně nebo prostřednictvím aktualizací Service Pack. Jeden tah zpět k tomuto však je, že nemusí být schopen vložit některé druhy grafů a obrázků, které chcete zobrazovat.

Nejlepší způsob, jak jít o tom, co bude vše závisí Opatrným na tom, kolik času budete muset investovat do vývoje. Pokud půjdete cestou automatizaci Office existuje několik dobrých tutoriálů, které tam lze najít přes Google a je poměrně jednoduché se naučit. Nicméně, formát Open Office XML je poměrně nová, takže můžete najít křivku učení, aby byl o něco vyšší.

Office Open XML Iinformation

Odpovězeno 13/08/2008 v 23:19
zdroj uživatelem

hlasů
17

Docx volná knihovna pro vytváření dokumentů DOCX, aktivně rozvíjet a velmi snadné a intuitivní použití. Vzhledem k tomu, CodePlex umírá, projekt se přestěhovala do github .

Odpovězeno 22/07/2010 v 16:07
zdroj uživatelem

hlasů
14

Nejrychlejší způsob, jak jsem to udělal v minulosti, je používat XML. Zde je dobrý článek, který by měl dostat jste začali:

http://msdn.microsoft.com/en-us/magazine/cc164064.aspx

Odpovězeno 13/08/2008 v 23:10
zdroj uživatelem

hlasů
13

Strávil jsem poslední týden nebo tak dostat až do rychlosti na Office Open XML . Máme databázové aplikace, které jsou uloženy údaje z průzkumů, které chceme zprávu v aplikaci Microsoft Word. Můžete si skutečně vytvořit Word 2007 souborů (docx) od nuly v jazyce C #. Open XML SDK verze 2 obsahuje chladnou aplikaci zvanou Document reflektor, který bude skutečně poskytovat C # kód, aby plně obnovit dokument. Můžete použít části nebo celý kód a nahradit kousky, které chcete změnit v reálném čase. Soubor nápovědy k SDK má některé dobré ukázky kódu stejně.

Není potřeba pro Office Interop nebo jakýkoli jiný software Office na serveru - nové formáty jsou 100% XML.

Odpovězeno 20/05/2009 v 14:40
zdroj uživatelem

hlasů
10

Zjistil jsem, že Aspose Slova být nejlepší jako ne každý může otevřít Office Open XML / *. Soubory ve formátu DOCX a slovo interop a automatizace Word může být kočárek. Aspose Slova podporuje většinu typů souborů dokumentů z Word 97 směrem nahoru.

Je to pay-for komponent, ale má velkou podporu. Druhou možností, jak již bylo navrženo je RTF.

Odpovězeno 14/08/2008 v 15:57
zdroj uživatelem

hlasů
10

Uvažovali jste o použití .RTF jako alternativu?

To podporuje vkládání obrázků a tabulek, jakož i textu, otevře ve výchozím nastavení pomocí aplikace Microsoft Word a přitom je to featureset je omezenější (odpočítat pokročilého formátování), za něco, co vypadá a cítí a otevírá jako aplikace Word dokument není to daleko.

Koncoví uživatelé pravděpodobně ani nevšimnete.

Odpovězeno 14/08/2008 v 15:43
zdroj uživatelem

hlasů
7

Generovat dokumenty Word s automatizaci Office v .NET, konkrétně v jazyce C # nebo VB.NET:

  1. Přidejte Microsoft.Office.Interop.Word odkaz na sestavení do projektu. Cesta je \ Visual Studio Tools pro Office \ PIA \ Office11 \ Microsoft.Office.Interop.Word.dll .

  2. Následujte příklad kódu Microsoft najdete zde: http://support.microsoft.com/kb/316384/en-us .

Odpovězeno 01/12/2009 v 23:50
zdroj uživatelem

hlasů
4

Schmidty, pokud chcete vytvořit dokumenty Word na webový server, budete potřebovat licenci pro každého klienta (nejen webový server). V této části je v prvním odkazu Rob zveřejněny:

„Kromě technických problémů, je třeba také vzít v úvahu problémy s licencí. Současné směrnice pro udělování licencí zabránit aplikací Office byly použity na serveru k obsluze požadavků klientů, nemají-li klienti vlastní licencované kopie systému Office. Práce na straně serveru automatizace poskytují funkce Office nelicencované stanice se nevztahuje End User License Agreement (EULA).“

Pokud splňujete licenční požadavky, myslím, že budete muset použít COM Interop - být konkrétní, na Office XP primární sestavení InterOp .

Odpovězeno 14/08/2008 v 00:21
zdroj uživatelem

hlasů
3

Napsal jsem sérii příspěvků o Open XML WordprocessingML generování dokumentů . Můj přístup je, že můžete vytvořit dokument šablony, která obsahuje ovládací prvky obsahu, av každém kontrolu obsahu píšete výraz XPath, který definuje, jak načíst obsah z dokumentu XML, který obsahuje data, která řídí proces generování dokumentů. Kód je zdarma a je licencován pod The Microsoft vzájemném License (Ms-RL) . V témže blog po sérii, já také prozkoumat přístup, kdy píšete C # kód kontroly obsahu. Proces generování dokumentů potom zpracuje dokument šablony a generuje C # program, který generuje požadované dokumenty. Jednou z výhod tohoto přístupu je, že můžete použít jakýkoli zdroj dat jako zdroj dat pro proces generování dokumentů. Tento kód je také pod licencí Microsoft vzájemném licence.

Odpovězeno 12/05/2011 v 04:50
zdroj uživatelem

hlasů
3

Měl jsem dobrý úspěch pomocí Syncfusion backoffice DocIO který podporuje doc i docx formátů.

V dřívějších verzích to nepodporoval všechno slovem, ale accoriding do svého seznamu se nám to zkouší s tabulkami a textem as přístupem hromadné korespondence a fungovalo to dobře.

Nejste si jisti při dovozu obrazů ačkoli. Na jejich reklama stránce http://www.syncfusion.com/products/DocIO/Backoffice/features/default.aspx říká

Blockquote Essential DocIO má podporu pro vkládání jak skalární a vektorové obrázky do dokumentu, téměř ve všech formátech. Bitmap, gif, png a tiff jsou některé z běžných typů obrazových podporovaných.

Takže její stojí za zvážení.

Jak již bylo zmíněno, můžete vybudovat dokument RTF, existují některé dobré knihovny RTF kolem NET jako http://www.codeproject.com/KB/string/nrtftree.aspx

Odpovězeno 09/04/2009 v 05:07
zdroj uživatelem

hlasů
3

Podívejte se VSTO (Visual Studio Tools pro Office). Je to poměrně jednoduché vytvořit šablonu aplikace Word, aplikujte ostrov data XML do něj, pak poslat jej klientovi. Když uživatel otevře dokument v aplikaci Word, Word čte XML a přeměňuje ji na WordML a činí ji. Budete chtít podívat na třídě ServerDocument knihovny VSTO. Žádné další licence je nutná z mé zkušenosti.

Odpovězeno 14/08/2008 v 16:03
zdroj uživatelem

hlasů
2

I čelí tento problém a vytvořil malou knihovnu za to. To bylo použito v několika projektech, a pak jsem se rozhodl ji zveřejnit. Je to zdarma a velice jednoduché, ale jsem si jistý, že to pomůže s vámi s úkolem. Vyvolat Office Open XML knihovny, http://invoke.co.nz/products/docx.aspx .

Odpovězeno 25/12/2008 v 22:51
zdroj uživatelem

hlasů
2

I v současné době dělat přesně tuto věc.

V případě, že dokument není příliš velký, neobsahuje obrázky a takové, pak jsem ji uložit jako RTF s # MergeFields # v něm a jednoduše nahradit je obsahem odesílá výsledek se uživateli jako RTF.

U větších dokumentů, včetně obrázků a dynamicky vložených obrázků, šetřím počáteční Word dokument jako jediné webové stránky * MHT souboru opět obsahujícího # MergeFields #. Pak jsem to samé jako výše. Použití této skutečnosti, mohu snadno vykreslit DataTable s některými základními tabulky HTML tagy a nahradí jeden z # MergeFields # s celou tabulku.

Snímky mohou být uloženy na serveru a url vložené do dokumentu příliš.

Zajímavé je, že nové formáty souborů Office 2007 jsou ve skutečnosti ZIP soubory - v případě přejmenování příponu ZIP můžete otevřít a zobrazit jejich obsah. To znamená, že byste měli být schopni přejít obsah, jako jsou obrázky a ven pomocí jednoduchého C # Poštovní knihovnu.

Odpovězeno 15/09/2008 v 12:05
zdroj uživatelem

hlasů
1

Dalo by se také použít Word generátor dokumentů. Lze jej použít pro klientské straně nebo na straně serveru nasazení. Z popisu projektu:

WordDocumentGenerator je nástroj pro generování dokumentů Word ze šablon s využitím Visual Studio 2010 a otevřít XML 2.0 SDK. WordDocumentGenerator pomáhá vytvářet dokumenty Word oba non-refresh-schopný, stejně jako refresh-schopen na základě předdefinovaných šablon s použitím minimální změny kódu. Ovládací prvky obsahu jsou používány jako zástupné symboly pro generování dokumentů. Podporuje Word 2007 a Word 2010.

Chytit ho: http://worddocgenerator.codeplex.com/

Ke stažení SDK: http://www.microsoft.com/en-us/download/details.aspx?id=5124

Odpovězeno 27/12/2012 v 20:08
zdroj uživatelem

hlasů
1

LibreOffice také podporuje bezhlavý interakci přes API. Bohužel to v současné době není mnoho informací o této funkci ještě .. :(

Odpovězeno 14/11/2011 v 10:56
zdroj uživatelem

hlasů
1

@Danny Šmoula: Ve skutečnosti tento článek popisuje, co se stane Office Open XML formát, který odpověděl Rob s. Budu věnovat více pozornosti vazby vložím do této chvíle, aby se ujistil, že není zastaralé. Vlastně jsem dělal vyhledávání na WordML, což je to, co to bylo voláno v té době.

Domnívám se, že formát Office Open XML je nejlepší způsob, jak jít.

Odpovězeno 13/08/2008 v 23:34
zdroj uživatelem

hlasů
1

@Dale Ragan: To bude pracovat pro XML formátu Office 2003, ale to není přenosný (jako, řekněme, by .doc nebo .docx soubory).

Číst / zapisovat ty, budete muset použít Word kontrolu objektu knihovny ActiveX:

http://www.codeproject.com/KB/aspnet/wordapplication.aspx

Odpovězeno 13/08/2008 v 23:21
zdroj uživatelem

hlasů
0

Jinou alternativou je Windward Docgen (disclaimer - Jsem zakladatel). S Windward navrhnete šablonu v aplikaci Word, včetně obrázků, tabulek, grafů, měřidel, a vše ostatní, co chcete. Můžete nastavit značky, kde je vložena data z XML nebo SQL zdroj dat (včetně funkcí, jako foreach smyčky, import atd). A potom generovat zprávu DOCX, PDF, HTML, atd

Odpovězeno 06/06/2012 v 23:37
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more