Pridavanie textu do word suboru v C# – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pridavanie textu do word suboru v C# – .NET – Fórum – Programujte.comPridavanie textu do word suboru v C# – .NET – Fórum – Programujte.com

 

Tomas
~ Anonymní uživatel
560 příspěvků
2. 8. 2013   #1
-
0
-

Zdravim. Mam problem s vkladanim textu do wordoveho suboru. Chcel by som vkladat text tak aby mal roznu vysku, pripadne farbu. Probelm je vsak v tom ze vzdy ma text taku vysku aku som nastavil naposledy...

Takyto kod pouzivam:

foreach (string filename in ofd.FileNames)

{

// now add the picture in active document reference

doc.InlineShapes.AddPicture(filename, Type.Missing, Type.Missing, Type.Missing);

Microsoft.Office.Interop.Word.Range r = doc.Range();

r.Font.Size = 12;

r.InsertBefore("Nadpis");

Microsoft.Office.Interop.Word.Range r2 = doc.Range();

r2.Font.Size = 25;

r2.InsertAfter("popis");

}

}

// file is saved.

doc.SaveAs("d:\\hello.doc", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

// application is now quit.

WordApp.Quit(Type.Missing, Type.Missing, Type.Missing);

Nahlásit jako SPAM
IP: 213.181.130.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
2. 8. 2013   #2
-
0
-

Fuj, fuj, fuj. Text a výška? Hele - takhle ne. Zaprvé názvy proměnných, dále OOP a vůbec - tento kód nelze použít ani jako toaleťák. Proč tak složitý formát - proč ti nestačí RTF? (Kde by jsi mohl mít i editační Control RichTextBox.) V tomto se nikdo nikdy v životě nevyzná - a tak ti nikdy nikdo v životě nepomůže... Nauč se tedy OOP - včetně správného pojmenovávání...

Nahlásit jako SPAM
IP: 78.136.150.–
Tomas
~ Anonymní uživatel
560 příspěvků
2. 8. 2013   #3
-
0
-

#2 Matěj Andrle
Podla mna je ten kod OK! a navyse nieje moj, len som ho stiahol z netu. Nazvy premennych poupravujem podla seba, toto je nanecisto skusam na tom ako to ide. Ja potrebujem exportovat obrazok do docx suboru nie do rtf. Ja len chcem napr. napisat jeden riadok vacsim pismom a druhy mensim...

Nahlásit jako SPAM
IP: 213.181.130.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
2. 8. 2013   #4
-
0
-

Kód je zprasený - to mi nevymluvíš. Stále nechápu proč to nemůže být RTF - když RTF ti Word otevře jako by nic... Místo té velké prasárny udělej XML předlohu, do které akorád dosazuj za src cesty k obrázkům... src je atribut...

V OOP se pojmenovává stále stejně v každém objektu. ToString je v každém objektu. Text je vlastnost, kterou najdeš v každém Controlu - atd. Mění se akorát objekt - ne pojmenování... ddd.ddd.ddd.KeyCode, eee.eee.KeyCode, ddd.ddd.Value, ccc.ccc.Value,... + CamelCase nedávat u proměnných...

Nahlásit jako SPAM
IP: 78.136.150.–
Tomas
~ Anonymní uživatel
560 příspěvků
2. 8. 2013   #5
-
0
-

#4 Matěj Andrle
Ten kod je okopirovany z clanku, ktory je na nejakom EN serveri. Zrejme nevie ten programator programovat :)

Co sa tyka kritiky OOP asi narazas na definovanie premennej stylom:

Microsoft.Office.Interop.Word.Range range = ........

ano? (Preto ten kod povazujes za sprasaceny? lebo moc tomu nerozumiem co je tam zle, je tam par definicii premennych a par prikazov, ziadne vetvenie ani nic kde sa da vycitat napr. zbytocne komplikovany algoritmus alebo co...)

Tak takto to je preto, lebo kompilator to inak nevezme, ano viem, ze sa to da vyriesit ale ani takto to nicomu nevadi, aspon viem presne o aky typ premennej ide.

Teoreticky mozem pozit aj RTFko, ja potrebujem len exportovat obrazok a par riadkov textu ko nemu a to je vsetko. Na internete som vygoogli toto tak som to pouzil.

Nahlásit jako SPAM
IP: 213.181.130.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
2. 8. 2013   #6
-
0
-

Ale to ty neumíš programovat, když nepoznáš, včem všude jsou chyby... Snažil jsem se ti vysvětlit, že objekt.Value nemůže pokračovat objekt.Value.Value - to zaprvé... Za další r1, r2,... Má to navazovat na pojmenovávání .NET - ddd.ddd.ddd - a nikde nenajdeš jedno/dvoupísmenné proměnné - vyjímaje x, y - tedy pozice, průměry,...

Jak jsem psal - celý ten cyklus bych být tebou zahodil. Vytvoř si kopii XML toho zdrojového souboru. Nastav požadovanou velikost písma, a jen měň src. Tedy načti si jednou šablonu. A projeď názvy souborů... Do šblony dosazuj cesty k obrázkům - a následně soubory ukládej. Ideální by bylo vytvořit objekt pro správu souboru typu Word/RTF/... a  ní mít tvé vlastní objekty k danému formátu...

Nahlásit jako SPAM
IP: 78.136.150.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
2. 8. 2013   #7
-
0
-

Tedy ručně zkopíruj XML, ručně nastav parametry jaké chceš - a kódem jen dosazuj cesty k obrázkům. Dělal-li by jsi něco náročnějšího, tak si šablonu uděláš kódem - ale rozhodně nebudeš postupovat tak, jako zde...

Nahlásit jako SPAM
IP: 78.136.150.–
Tomas
~ Anonymní uživatel
560 příspěvků
2. 8. 2013   #8
-
0
-

#7 Matěj Andrle
Vies citat? Pisal som, ze premenne som pomenoval narychlo lebo ten kod testujem! Nie som taky vol aby som si premenne nazyval jednym pismenkom a potom nerozumel co predstavuje. Ten kod je podobne pisany dokonca aj na MSDN! Ja som nikdy s wordom pod C# nerobil, preto som si nasiel tutorial na internete, skopiroval zdrojovy text a ten pouzil.

Ok, idem sa pozriet po tom RTFku...

Nahlásit jako SPAM
IP: 213.181.130.–
Tomas
~ Anonymní uživatel
560 příspěvků
2. 8. 2013   #9
-
0
-

Este sa nieco spytam ohladom definovania tych premennych. Ked using System.Data obsahuje typ premennej DataTable a rovnako tak aj Microsoft.Office.Interop.Excel obsahuje DataTable tak ked chcem definovat globalnu premennu:

private System.Data.DataTable hlasy = new System.Data.DataTable();

Tak to nemozem zapisat ako DataTable hlasy ..... pretoze kompilator mi napise chybu. Ako sa to riesi v tomto pripade?

Nahlásit jako SPAM
IP: 213.181.130.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
2. 8. 2013   #10
-
0
-

Output sem... (Bez erroru nic nezmůžu.)

Nahlásit jako SPAM
IP: 78.136.150.–
Tomas
~ Anonymní uživatel
560 příspěvků
2. 8. 2013   #11
-
0
-

Chyba spociva v tom, ze sa tieto dve DataTable 'biju', cize kompilator nevie ktoru DataTable ma pouzit. ked napisem system.data.datatable tak uz vie, ze chcem pouzit DataTable od System a nie tu 'excelovsku'...
jedine co ma napada je odstranit v uvode kodu using Microsoft.Office.Interopt.Excel a pouzit ho len v funkcii kde pracujem s excelom...

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 95.103.18.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
2. 8. 2013   #12
-
0
-

alias

Nahlásit jako SPAM
IP: 78.136.150.–
Tomas
~ Anonymní uživatel
560 příspěvků
2. 8. 2013   #13
-
0
-

no lenze to mi nepomoze, pretoze ja tou funkciou exportujem Tabulku DataTable do excelu, takze musim pouzivat definiciu v tomto pripade System.Data.DataTable

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 95.103.18.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
2. 8. 2013   #14
-
0
-

Tak použij konverzi - či o co GO? Absolutně tě nechápu...

Nahlásit jako SPAM
IP: 78.136.150.–
Tomas
~ Anonymní uživatel
560 příspěvků
3. 8. 2013   #15
-
0
-

#14 Matěj Andrle
Mam tabulku DataTable, obsah tejto tabulky exportujem do excelu. Na pracu s excelom pouzivam:

using Microsoft.Office.Interopt.Excel, ktory ma tiez datovy typ DataTable. Takze pri definovani pemennej nemozem napisat len DataTable tabulka = new DataTable(); pretoze su dva druhy DataTable a kompilator nevie ktoru ma pouzit. Preto musim definovat premennu: System.Data.DataTable tabulka = new System.Data.DataTable(); inak to nejde.

Nahlásit jako SPAM
IP: 213.181.130.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
3. 8. 2013   #16
-
0
-

alias

Nahlásit jako SPAM
IP: 78.136.150.–
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, 7 hostů

 

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