[C#] editovanie .doc dokumentov – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

[C#] editovanie .doc dokumentov – .NET – Fórum – Programujte.com[C#] editovanie .doc dokumentov – .NET – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Sarge0
Newbie
24. 5. 2012   #1
-
0
-

Ahojte, pokusam sa napisat program pomocou ktoreho sa daju editovat word dokumenty. Mam tam chybu v kodovani a neviem sa s tym pohnut, ked editovany subor otvorim vo worde text je rozhadzany. Neriesili ste niekto podobny problem?

StreamReader sr = new StreamReader(@"C:\zml.doc", System.Text.Encoding.Unicode);

                var item = sr.ReadToEnd();
                item = item.Replace("chcemnahradit", "tymto");
                
TextWriter tw = new StreamWriter(@"C:\zmlp.doc", false, System.Text.Encoding.Unicode);
                
                tw.Write(item);
                tw.Close();
Nahlásit jako SPAM
IP: 95.103.96.–
Reklama
Reklama
stif+1
Stálý člen
24. 5. 2012   #2
-
0
-

#1 Sarge
Možno to obmeň tak:

StreamReader sr = new StreamReader(@"C:\zml.doc", System.Text.Encoding.ANSI);

                var item = sr.ReadToEnd();
                item = item.Replace("chcemnahradit", "tymto");
                
TextWriter tw = new StreamWriter(@"C:\zmlp.doc", false, System.Text.Encoding.ANSI);
                
                tw.Write(item);
                tw.Close();

alebo,

StreamReader sr = new StreamReader(@"C:\zml.doc", System.Text.Encoding.UTF-8);

                var item = sr.ReadToEnd();
                item = item.Replace("chcemnahradit", "tymto");
                
TextWriter tw = new StreamWriter(@"C:\zmlp.doc", false, System.Text.Encoding.UTF-8);
                
                tw.Write(item);
                tw.Close();

ale, možno že len kecám...

Nahlásit jako SPAM
IP: 178.41.29.–
Autor programuje v programovacích jazykoch C++ a VB. Je tvorcom e-zinu http://www.programujte.6f.sk/, na ktorom sa nachádzaju info pre začínajúcich prog. a webdesignerov. Stránka zahrňuje aj fórum.
Evzen+2
Návštěvník
25. 5. 2012   #3
-
+2
-
Zajímavé

Ahoj, 

no nejsem si úplně jistý, jestli vůbec tímto způsobem budeš schopen manipulovat s Word dokumenty.

Pokud chceš pracovat s Wordem v jeho binární podobě (*.doc), tak buď můžeš sáhnout po Office Interopu (viz google), nutností je mít nainstalovaný Microsoft Office a přilinkovat knihovnu z Office balíku. 

Nicméně já toto zkoušel s různými verzemi a často se to v různých prostředí a s různými Office balíky chová jinak.

Popravdě se tomu vždy vyhýbám jak čert kříži a když už, tak je ideální to odladit na jednu konfiguraci a vyřešit to jako serverovou záležitost.

Od office balíku 2007+ i Microsoft pochopil, že mít tento dokument jako binárku není ideální a vytvořil formáty končící "x" písmenkem (*.docx aj). Toto je vlastně jen zip soubor a v něm jsou uloženy všechny potřebné soubory, veškerá data se ukládají do xml formátu a přílohy do extra složky a z xml jsou pouze odkazy.

I přesto, že jde o XML soubor, tak je to nehorázný moloch a snažit je to editovat standardním způsobem je cesta do pekel. Microsoft si toto uvědomil a tak nám vývojářům .net usnadnil práci, protože vytvořil Open XML SDK.

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

Vývojáři sobě: http://openxmldeveloper.org/

Osobně se mi tento přístup líbí. Nejsi závislý na Office balíku, vše je zdarma. Ale má to i nevýhody, protože k tomu přistupuje pořád jako do XML, tak třeba nezjistíš, kolik má výsledný dokument stránek, neumí to generovat automaticky obsah, protože to si rekonstruuje word sám atd.

FAQ: http://social.msdn.microsoft.com/Forums/en-US/oxmlsdk/thread/19032efe-80af-4a16-b954-1f5a6d2f2236

Pak už ti zbudou jen placené komponenty třetích stran, u kterých si nemůžeš být jist, že až Microsoft vydá novou verzi, že to vše bude pořád fungovat :)

Choise is yours ;)

Evžen

Nahlásit jako SPAM
IP: 193.179.183.–
Sarge0
Newbie
26. 5. 2012   #4
-
0
-

#3 Evzen

Dikes, o tej Open XML SDK som vobec nevedel, vyzera to ako najrozumnejsie riesenie

Nahlásit jako SPAM
IP: 89.103.128.–
DragonBehemont0
Super člen
2. 6. 2012   #5
-
0
-

#1 Sarge
Ahoj,

pro práci s dokumenty Office existuje přímo knihovna. Díky této knihovně jsi schopen s dokumentem pracovat na nejvyšší možné míře efektivnosti. Máš k dispozici veškeré prostředky jako by si měl dokument otevřený přímo ve Wordu, akorát jej ovládáš programově.

http://support.microsoft.com/kb/316126/cs

Nahlásit jako SPAM
IP: 95.82.185.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
Sarge0
Newbie
2. 6. 2012   #6
-
0
-

#5 DragonBehemont

J diki. Nakoniec som pouzil Interop kvoli tomu, ze som potreboval pracovat s formatom .doc

Nahlásit jako SPAM
IP: 89.103.128.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 47 hostů

Podobná vlákna

Čtení DOC v C++ — založil Petr

Jak dostat text z DOC? — založil Matěj Andrle

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý