Jak generovat dokumenty ve wordu. Exwog - generátor sestav z Excelu do Wordu podle šablony

Žijeme ve světě, kde vývojáři PHP musí čas od času interagovat s operačním systémem Windows. WMI (Windows Management Interface, Windows Management Interface) – jedním z takových příkladů je interakce s Microsoft Office.

V tomto článku se podíváme na jednoduchou integraci mezi Wordem a PHP: generování dokumentu Microsoft Word na základě vstupních polí ve formuláři HTML pomocí PHP (a jeho rozšíření Interop).

Přípravné kroky

Nejprve se přesvědčme, že máme nastavené základní prostředí WAMP. Vzhledem k tomu, že Interop je přítomen pouze na Windows, potřebujeme, aby byl náš server Apache a instalace PHP nasazena na počítači s Windows. Jako takový používám EasyPHP 14.1, který se velmi snadno instaluje a nastavuje.

Dalším krokem je instalace Microsoft Office. Verze není moc důležitá. Používám Microsoft Office 2013 Pro, ale jakákoli verze Office starší než 2007 by měla fungovat.

Musíme se také ujistit, že máme nainstalované knihovny pro vývoj aplikace Interop (PIA, Primary Interop Assemblies, Primary Interop Assemblies). Můžete to zjistit otevřením Průzkumníka Windows a přechodem do adresáře \assembly a tam bychom měli vidět sadu nainstalovaných sestavení:

Zde můžete vidět prvek Microsoft.Office.Interop.Word (na snímku obrazovky podtržený). Toto bude sestavení, které použijeme v našem demu. Věnujte prosím zvláštní pozornost polím „Název sestavy“, „Verze“ a „Token veřejného klíče“. Brzy je použijeme v našem PHP skriptu.

Tento adresář obsahuje i další sestavy (včetně celé rodiny Office) dostupné pro použití v jejich programech (nejen pro PHP, ale i pro VB.net, C# atd.).

Pokud seznam sestavení nezahrnuje celý balíček Microsoft.Office.Interop, musíme buď přeinstalovat Office přidáním PIA, nebo ručně stáhnout balíček z webu Microsoftu a nainstalovat jej. Podrobnější pokyny naleznete na této stránce MSDN.

Komentář Poznámka: Ke stažení a instalaci je k dispozici pouze distribuce PIA sady Microsoft Office 2010. Verze sestavení v tomto balíčku je 14.0.0 a verze 15 je dodávána pouze s Office 2013.

Nakonec musíte povolit rozšíření php_com_dotnet.dll v php.ini a restartovat server.

Nyní můžeme přejít k programování.

HTML formulář

Protože hlavní část tohoto příkladu spadá na stranu serveru, vytvoříme jednoduchou stránku s formulářem, který bude vypadat takto:

Máme zde textové pole pro jméno, skupinu přepínačů pro pohlaví, posuvník pro věk a oblast pro zadávání textu pro zadání zprávy a také nechvalně známé tlačítko „Odeslat“.

Uložte tento soubor jako „index.html“ do adresáře virtuálního hostitele, aby k němu bylo možné přistupovat na adrese URL jako http://test/test/interop .

Serverová část

Soubor handleru na straně serveru je hlavním cílem našeho rozhovoru. Nejprve poskytnu úplný kód tohoto souboru a poté jej vysvětlím krok za krokem.

viditelný = pravdivý; $fn = __DIR__ . "\\template.docx"; $d = $w->Dokumenty->Otevřít($fn); echo "Dokument je otevřen.


"; $flds = $d->Pole; $count = $flds->Count; echo "Dokument má pole $count.
"; echo"
    "; $mapping = setupfields(); foreach ($flds jako $index => $f) ( $f->Select(); $key = $mapping[$index]; $value = $inputs[$key]; if ($key == "gender") ( if ($value == "(!LANG:m") $value = "Pan."; else $value = "Slečna."; } if($key=="printdate") $value= date ("Y-m-d H:i:s"); $w->Selection->TypeText($value); echo "!}
  • Přiřazení $index: $klíč k $hodnotě
  • ";) echo"
"; echo "Zpracování dokončeno!

"; echo "Tisk, čekejte prosím...
"; $d->PrintOut(); sleep(3); echo "Hotovo!"; $w->Quit(false); $w=null; funkce setupfields() ( $mapping = array(); $mapping = "pohlaví"; $mapping = "jméno"; $mapping = "věk"; $mapping = "zpráva"; $mapping = "datum tisku"; návrat $mapping; )

Poté, co zapíšeme hodnoty přijaté z formuláře do proměnné $inputs a také vytvoříme prázdný prvek s klíčem printdate (proč jsme to udělali - probereme později), přejdeme na čtyři velmi důležité řádky:

$assembly = "Microsoft.Office.Interop.Word, verze=15.0.0.0, kultura=neutral, PublicKeyToken=71e9bce111e9429c"; $class = "Microsoft.Office.Interop.Word.ApplicationClass"; $w = new DOTNET($sestava, $třída); $w->visible = true;

PHP manipulátor COM vyžaduje, aby byla třída vytvořena v rámci "sestavení". V našem případě pracujeme s Wordem. Pokud se podíváte na první snímek obrazovky, můžete si zapsat celý podpis sestavení pro Word:

  • „Název“, „Verze“, „Token veřejného klíče“ jsou všechny převzaty z informací, které lze zobrazit v „c:\Windows\assembly“ .
  • „Kultura“ je vždy neutrální

Třída, na kterou se chceme odkazovat, se vždy jmenuje „název sestavy“ + „.ApplicationClass“.

Nastavením těchto dvou parametrů můžeme získat objekt pro práci s Wordem.

Tento objekt může zůstat na pozadí, nebo jej můžeme uvést do výroby nastavením atributu visible na hodnotu true .

Dalším krokem je otevření dokumentu ke zpracování a zapsání instance „document“ do proměnné $d .

Existuje několik způsobů, jak vytvořit obsah založený na formuláři v dokumentu.

Nejhorší by bylo natvrdo zakódovat obsah dokumentu v PHP a poté jej vypsat do dokumentu aplikace Word. Důrazně doporučuji nedělat to z následujících důvodů:

  1. Ztrácíte flexibilitu. Jakékoli změny ve výstupním souboru budou vyžadovat změny v kódu PHP.
  2. Tím se naruší oddělení kontroly a pohledu
  3. Použití stylů na obsah dokumentu (zarovnání, fonty, styly atd.) ve skriptu výrazně zvýší počet řádků kódu. Programově měnit styly je příliš těžkopádné.

Další možností by bylo použít najít a nahradit. PHP má na to dobré vestavěné nástroje. Můžeme vytvořit dokument Wordu, do kterého umístíme štítky se speciálními oddělovači, které budou později nahrazeny. Můžeme například vytvořit dokument, který bude obsahovat následující fragment:

a pomocí PHP jej můžeme snadno nahradit obsahem pole „Jméno“ obdrženým z formuláře.

To je jednoduché a ušetří nás to od všech nepříjemných následků, kterým čelíme v první metodě. Musíme se jen rozhodnout pro správný oddělovač, v takovém případě nakonec použijeme šablonu.

Doporučuji třetí způsob a ten je založen na hlubší znalosti Wordu. Pole použijeme jako zástupné symboly a pomocí PHP kódu přímo aktualizujeme hodnoty v polích s odpovídajícími hodnotami.

Tento přístup je flexibilní, rychlý a konzistentní s doporučenými postupy aplikace Word. S ním se také můžete vyhnout fulltextovému vyhledávání v dokumentu, což má dobrý vliv na výkon. Všimněte si, že toto řešení má také nevýhody.

Word nepodporoval pojmenované indexy pro pole od samého začátku. I když máme zadaná jména pro vytvořená pole, musíme stále používat číselné identifikátory těchto polí. To také vysvětluje, proč potřebujeme použít samostatnou funkci (setupfields), abychom porovnali index pole a název pole z formuláře.

V této ukázce použijeme dokument s 5 poli MERGEFIELD. Dokument šablony umístíme na stejné místo jako náš obslužný program skriptu.

Vezměte prosím na vědomí, že pole datum tisku nemá odpovídající pole ve formuláři. Proto jsme do pole $inputs přidali prázdný prvek printdate. Bez toho bude skript stále běžet a běží, ale PHP vydá varování, že v poli $inputs chybí index printdate.

Po nahrazení polí novými hodnotami dokument vytiskneme s

$d->PrintOut();

Metoda PrintOut má několik volitelných parametrů a my používáme její nejjednodušší formu. Tím se vytiskne jedna kopie dokumentu na výchozí tiskárně připojené k počítači se systémem Windows.

Můžete také zavolat PrintPreview a podívat se na výsledek, než jej vytisknete. V plně automatickém prostředí samozřejmě využijeme metodu PrintOut.

Než aplikaci Word ukončíte, musíte chvíli počkat, protože zařazení tiskové úlohy do fronty nějakou dobu trvá. Bez zpoždění(3) se metoda $w->Quit provede okamžitě a úloha není zařazena do fronty.

Nakonec zavoláme $w->Quit(false) , čímž zavřeme aplikaci Word, která byla volána naším skriptem. Jediný parametr předaný metodě je uložit soubor před ukončením. Provedli jsme úpravy v dokumentu, ale nechceme je ukládat, protože potřebujeme čistou šablonu pro pozdější práci.

Poté, co jsme s kódem hotovi, můžeme načíst stránku formuláře, vyplnit nějaké hodnoty a odeslat ji. Níže uvedené obrázky ukazují výstup skriptu a aktualizovaný dokument Word:

Vylepšená rychlost zpracování a něco více o PIA

PHP je volně napsaný jazyk. Objekt COM typu Object . Při psaní skriptu nemáme žádný způsob, jak získat popis objektu, ať už je to aplikace Word, dokument nebo pole. Nevíme, jaké vlastnosti má tento objekt, ani jaké metody podporuje.

To výrazně zpomalí rychlost vývoje. Pro urychlení vývoje bych doporučoval napsat funkce nejprve v C# a poté kód přeložit do PHP. Mohu doporučit bezplatné IDE pro vývoj C# s názvem „#develop“. Můžete ji najít. Dávám mu přednost před Visual Studiem, protože #develop je menší, jednodušší a rychlejší.

Migrace kódu C# do PHP není tak děsivá, jak se zdá. Dovolte mi ukázat vám pár řádků v C#:

Word.Application w=new Word.Application(); w.Visible=true; String path=Application.StartupPath+"\\template.docx"; Word.Document d=w.Documents.Open(cesta) jako Word.Document; Word.Fields flds=d.Fields; intlen=flds.Count; foreach (Word.Field f in flds) ( f.Select(); int i=f.Index; w.Selection.TypeText("..."); )

Můžete vidět, že kód C# je velmi podobný kódu PHP, který jsem ukázal dříve. C# je silně typovaný jazyk, takže v tomto příkladu můžete vidět několik operátorů přetypování a také musíte zadat typ proměnných.

Zadáním typu proměnné si můžete užít čistší kód a automatické dokončování a výrazně se zvýší rychlost vývoje.

Dalším způsobem, jak urychlit vývoj PHP, je volání makra ve Wordu. Provedeme stejnou sekvenci akcí a poté ji uložíme jako makro. Makro je napsáno ve Visual Basicu, který je také snadno přeložitelný do PHP.

A co je nejdůležitější, dokumentace Microsoft Office PIA, zejména dokumentace jmenného prostoru každé aplikace Office, je nejpodrobnější referencí. Nejpoužívanější tři aplikace jsou:

  • Excel 2013: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel(v=office.15).aspx
  • Word 2013: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word(v=office.15).aspx
  • PowerPoint 2013: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.powerpoint(v=office.15).aspx

Závěr

V tomto článku jsme vám ukázali, jak naplnit dokument aplikace Word daty pomocí knihoven PHP COM a interoperability Microsoft Office.

Windows a Office jsou široce používány v každodenním životě. Znalost síly Office/Window a PHP bude užitečná pro každého vývojáře PHP a Windows.

Rozšíření PHP COM vám otevírá dveře k použití této kombinace.

Pokračujeme v tématu práce s formuláři ve Wordu, které jsme začali dříve. V předchozích článcích jsme se na formuláře dívali pouze z pohledu „výkonného uživatele“, tzn. vytvořili jsme dokumenty, které jsou vhodné pro ruční vyplňování. Dnes chci navrhnout rozšíření tohoto úkolu a pokusit se použít mechanismus Content control pro generování dokumentů.

Než se pustíme do našeho bezprostředního úkolu, chci říci pár slov o tom, jak jsou data pro ovládání obsahu uložena v dokumentech Word (záměrně vynechám, jak jsou svázány s obsahem dokumentu, ale doufám, že se vrátím k tomu někdy v dalších článcích).

Legitimní otázkou je, co je itemProps1.xml a podobné komponenty? Tyto komponenty ukládají popisy zdrojů dat. S největší pravděpodobností, jak je koncipováno vývojáři, kromě xml souborů vložených do dokumentu měl používat další, ale zatím byla implementována pouze tato metoda.

Co je pro nás užitečné itemPropsX.xml? Skutečnost, že vypisují xml schémata (jejich cílový jmenný prostor), které se používají v nadřazeném prvku itemX.xml. To znamená, že pokud jsme do dokumentu zahrnuli více než jeden vlastní xml, pak abychom našli ten správný, musíme projít itemPropsX.xml součástky a najít požadovaný obvod, a tedy požadovaný itemX.xml.

Teď ještě moment. Nebudeme ručně rozebírat vztahy mezi komponentami a hledat ty správné pouze pomocí základního Packaging API! Místo toho použijeme Open XML SDK (jeho sestavení jsou k dispozici přes NuGet). Samozřejmě jsme o tomto API neřekli ani slovo dříve, ale pro náš úkol to vyžaduje minimum a veškerý kód bude zcela transparentní.

No, hlavní úvod je hotový, můžete přejít k příkladu.

Podle zavedené tradice vezmeme stejnou „Zprávu z jednání“, kterou jsme nakreslili v článku. Dovolte mi připomenout, že takto vypadala šablona dokumentu:

A tedy XML, ke kterému byla pole dokumentu navázána

< meetingNotes xmlns ="urn:MeetingNotes" subject ="" date ="" secretary ="" > < participants > < participant name ="" /> < decisions > < decision problem ="" solution ="" responsible ="" controlDate ="" />

Krok 1. Vytvořte datový model

Naším úkolem vlastně není jen vygenerovat dokument, ale vytvořit (alespoň v pracovní verzi) pohodlný nástroj pro použití vývojářem i uživatelem.

Proto deklarujeme model jako strukturu tříd C#:

Veřejná třída MeetingNotes ( public MeetingNotes() ( Účastníci = nový seznam (); Rozhodnutí = nový Seznam (); ) public string Subject ( get; set; ) public DateTime Date ( get; set; ) public string Secretary ( get; set; ) public List Účastníci ( get; set; ) veřejný seznam Rozhodnutí ( get; set; ) ) public class Decision ( public string Problem ( get; set; ) public string Solution ( get; set; ) public string Responsible ( get; set; ) public DateTime ControlDate ( get; set; ) ) public class Participant ( public string Name ( get; set; ) )

Celkově vzato nic zvláštního, kromě toho, že byly přidány atributy pro řízení serializace XML (protože názvy v modelu a požadované XML se mírně liší).

Krok 2: Serializujte výše uvedený model do XML

Úkol je to v zásadě triviální. To, čemu se říká „vezmi si náš oblíbený XmlSerializer a jdi“, ne-li pro jednoho ale

Bohužel v aktuální verzi Office se zjevně vyskytuje chyba, která je následující: pokud ve vlastním xml před deklarovat hlavní jmenný prostor (ten, ze kterého má Word převzít prvky pro zobrazení), deklarovat další, pak se opakované ovládací prvky obsahu začnou zobrazovat nesprávně (zobrazí se pouze tolik prvků, kolik jich bylo v samotné šabloně - tj. opakující se sekce nezobrazuje práce).

Tito. Zde je xml, který funguje:

< test xmlns ="urn:Test" attr1 ="1" attr2 ="2" > < repeatedTag attr ="1" /> < repeatedTag attr ="2" /> < repeatedTag attr ="3" />

a tenhle taky:

< test xmlns ="urn:Test" attr1 ="1" attr2 ="2" xmlns:t ="urn:TTT" > < repeatedTag attr ="1" /> < repeatedTag attr ="2" /> < repeatedTag attr ="3" />

a tenhle je pryč:

< test xmlns:t ="urn:TTT" xmlns ="urn:Test" attr1 ="1" attr2 ="2" > < repeatedTag attr ="1" /> < repeatedTag attr ="2" /> < repeatedTag attr ="3" />

Pokusil jsem se odeslat chybu podpoře Microsoftu na Connect, ale z nějakého důvodu mi byl odepřen přístup k odesílání chyb prostřednictvím Office. Nepomohla ani diskuze na fóru MSDN.

Obecně nutný objížďkový manévr. Pokud bychom XML tvořili ručně, nebyly by žádné problémy – vše bychom si dělali sami. V tomto případě však opravdu chci použít standardní XmlSerializer, který ve výchozím nastavení přidává několik svých jmenných prostorů do výstupního XML, i když tyto jmenné prostory nejsou použity.

Provedeme úplné potlačení výstupu našich vlastních jmenných prostorů v XmlSerializer. Je pravda, že tento přístup bude fungovat, pouze pokud je opravdu nepotřebuje (jinak budou stále přidávány a těsně PŘED našimi).

Vlastně celý kód (za předpokladu, že proměnná poznámky k setkání obsahuje dříve naplněný objekt typu MeetingNotes):

var serializer = new XmlSerializer(typeof (MeetingNotes));
var serializedDataStream = new MemoryStream();

var jmenné prostory = new XmlSerializerNamespaces();
jmenné prostory.Add(“” , “” );

serializer.Serialize(serializedDataStream, meetingNotes, jmenné prostory);
serializedDataStream.Seek(0, SeekOrigin.Begin);

Krok 3. Výsledné XML zadáme do dokumentu aplikace Word.

Zde provádíme následující:

  • zkopírujte šablonu a otevřete kopii
  • najděte v něm požadovaný vlastní xml (hledejte podle jmenného prostoru „urna: poznámky k jednání“)
  • obsah komponenty nahradíme naším XML

File.Copy(název_šablony, název_výsledkuDokumentu, true ); using (var document = WordprocessingDocument.Open(resultDocumentName, true )) ( var xmlpart = document.MainDocumentPart.CustomXmlParts .Single(xmlPart => xmlPart.CustomXmlPropertiesPart.DataStoreItem.SchemaReferences.OfType () .Any(sr => sr.Uri.Value == "(!LANG:urn:MeetingNotes"!}

V předchozích článcích série „Automatizace vyplňování dokumentů“ jsem mluvil o tom, jak vytvořit uživatelské rozhraní aplikace, uspořádat ověřování vstupu a získat číslo ve slovech bez použití kódu VBA. V tomto posledním článku budeme hovořit o magii - přenosu všech potřebných hodnot ze sešitu aplikace Excel do dokumentu aplikace Word. Dovolte mi ukázat vám konečný výsledek:

Popis mechanismu

Nejprve obecně popíšu, jak přesně budou data přenesena do dokumentu aplikace Word. Nejprve potřebujeme šablonu dokumentu Word obsahující všechny značky, tabulky a tu část textu, která zůstane nezměněna. V této šabloně musíte definovat místa, kde budou nahrazeny hodnoty z excelového sešitu - nejpohodlněji to lze provést pomocí záložek. Poté je potřeba uspořádat data Excelu tak, aby odpovídala šabloně Wordu, a v neposlední řadě napsat samotný postup přenosu ve VBA.

Takže první věci.

Vytvořte šablonu dokumentu aplikace Word

Všechno je zde velmi jednoduché - vytvoříme běžný dokument, napíšeme a naformátujeme text, obecně dosáhneme toho, abychom získali potřebnou formu. V místech, kde bude nutné nahradit hodnoty z Excelu, musíte vytvořit záložky. To se provádí následujícím způsobem:

Budete tedy muset vytvořit všechny záložky, tedy označit všechna místa, kam se budou vkládat data z Excelu. Výsledný soubor je nutné uložit jako "Šablonu MS Word" pomocí položky nabídky "Soubor" -> "Uložit jako...".

Příprava dat v Excelu

Pro pohodlí jsem se rozhodl umístit všechna data, která je třeba přenést do dokumentu Word, na samostatný list s názvem Záložky - záložky. Tento list má dva sloupce: první obsahuje názvy záložek (přesně tak, jak jsou pojmenovány v dokumentu Word), a druhý obsahuje odpovídající hodnoty, které mají být přeneseny.

Některé z těchto hodnot jsou získány přímo ze vstupního listu dat a některé jsou z pomocných tabulek umístěných na podpůrném listu. V tomto článku nebudu rozebírat vzorce, které počítají požadované hodnoty, pokud něco není jasné, zeptejte se v komentářích.

V této fázi je důležité správně zadat všechny názvy záložek - na tom závisí správnost přenosu dat.

Postup přenosu

Ale tohle je nejzajímavější. Existují dvě možnosti, jak provést kód migrace dat:

  • Kód je spuštěn v excelovém sešitu, data jsou předávána Wordu po jedné hodnotě a jsou okamžitě umístěna do dokumentu.
  • Kód se provádí v samostatném dokumentu Word, všechna data se přenášejí z Excelu v jedné dávce.

Z hlediska rychlosti provádění, zejména při velkém počtu záložek, vypadá druhá možnost mnohem atraktivněji, ale vyžaduje složitější akce. To je ten, který jsem použil.

Zde je to, co je třeba udělat:

  • Vytvořte šablonu dokumentu Word s podporou maker. Tato šablona bude obsahovat spustitelný kód VBA.
  • Do vytvořené šablony je potřeba umístit program napsaný ve VBA. Chcete-li to provést, při úpravě šablony stiskněte kombinaci kláves Alt + F11 a zadejte kód programu do okna editoru jazyka Visual Basic, které se otevře.
  • V sešitu aplikace Excel napište kód, který volá proceduru vyplnění z nově vytvořené šablony aplikace Word.

Text postupu v článku neuvedu - lze jej snadno zobrazit v souboru FillDocument.dotm umístěného ve složce Template v archivu příkladů.

Jak to všechno můžete využít k vyřešení vašeho konkrétního problému?

Chápu, že slovy to všechno vypadá velmi jednoduše, ale co se stane v praxi? Doporučuji použít pouze hotovou možnost. Stáhněte si archiv s příkladem, v sešitu aplikace Excel stisknutím kombinace kláves Alt + F11 otevřete editor jazyka Visual Basic a přečtěte si všechny mé komentáře k programu. Abyste mohli změnit program podle svých potřeb, stačí změnit hodnotu několika konstant, které jsou umístěny na úplném začátku programu. Celý text programu můžete libovolně zkopírovat do svého projektu.

Struktura archivu

Archiv připojený k tomuto článku obsahuje několik souborů.

Hlavním souborem je excelový sešit s názvem "Generovat potvrzení". V tomto sešitu jsou 4 listy, z nichž jsou zobrazeny pouze dva: "Vstup" - list pro zadávání dat a "Databáze" - archiv všech zadaných dokumentů.

Složka Šablony obsahuje šablony dokumentů aplikace Word. Jedním z nich je šablona obsahující program pro vyplňování záložek a druhým je formulář k vyplnění. Šablonu můžete používat s programem beze změn, ale formulář k vyplnění bude samozřejmě nutné upravit podle vašich potřeb.

Jak přepracovat příklad "pro sebe"?

  1. Připravte si šablonu dokumentu Word, kterou chcete dokončit. Vytvořte si v něm všechny potřebné záložky a uložte jej jako "šablonu MS Word".
  2. Zkopírujte soubor FillDocument.dotm z archivu přiloženého k tomuto článku do složky s připravenou šablonou. Tento soubor je zodpovědný za vyplňování záložek šablony a není v něm třeba nic měnit.
  3. Připravte si excelový sešit pro zadávání dat. Je jen na vás, zda bude mít nějaké „pokročilé“ uživatelské rozhraní a provádět různé záludné výpočty. Hlavní věc je, že obsahuje list s tabulkou shody mezi názvem záložky v šabloně aplikace Word a hodnotou, která má být nahrazena.
  4. Do připraveného sešitu vložte kód programu VBA z ukázkového souboru. Nahraďte všechny konstanty podle vašeho projektu.
  5. Otestujte správnou funkci.
  6. Aktivně si užívat!

A, příjmení ve sloupci B a profese ve sloupci C.

2. Vytvořte dokument aplikace Word (.doc nebo .docx)


(A), (B) a (C).

(A), (B) a (C) (A)- název, (B)- příjmení, (C)- povolání.

Nastavení programy.

3. Vyberte cesty pro soubory a složky


Vybrat

4. Nastavte listy a řádky požadovaných dat


Datové listy souborů Excel

Datové řádky souboru Excel Datové listy souborů Excel

1 .

Pokud chcete, aby se na tvorbě dokumentu podílely všechny listy a/nebo řádky vašeho excelového souboru s daty, klikněte na příslušné tlačítko vpravo s nápisem čísla(jeho nápis se změní na Všechno).

5. Nastavte šablonu názvu pro nové soubory Word


Nastavte šablonu názvu pro nové soubory Word:

Nová šablona názvů souborů aplikace Word je šablona pro názvy nových dokumentů (souborů word) generovaných programem. Šablona názvu zde obsahuje názvy sloupců excelového souboru orámované složenými závorkami: (A) a (B). Při generování nového dokumentu program nahradí všechny (A) a (B) odpovídající hodnoty buněk ze souboru aplikace Excel - to bude název nového dokumentu (soubor aplikace Word).

Na kartě si můžete nastavit vlastní znaky ohraničení Nastavení programy.

6. Klikněte na "Generovat"


Klepněte na tlačítko generovat a pokrok se zobrazí na obrazovce. Dokumenty (soubory word) budou vytvořeny přesně tolik, kolik řádků excelového souboru se bude tvořit.

7. Všechno


Všechny dokumenty (soubory word) byly vytvořeny a jsou umístěny ve složce uvedené v Složka pro uložení nových souborů aplikace Word. Všechno:)

exwog- generátor sestav šablon z Excelu do Wordu

Zdarma generátor souborů Word podle šablony (soubor aplikace Word) na základě dat souboru aplikace Excel

Funguje na Mac OS, Windows a Linux

Umožňuje nastavit názvy nově vygenerovaných souborů Word

Umožňuje nastavit listy a řádky požadovaných dat

Umožňuje nastavit znaky ohraničení pro názvy sloupců aplikace Excel

Snadné použití

Ukládejte svá data ve formátu Excel (.xls a .xlsx) a generujte soubory Word (.doc a .docx) několika kliknutími :)


Jak to funguje?

Podívejte se na svůj excelový soubor


V tomto příkladu obsahuje soubor aplikace Excel informace o klientech. Každý řádek odpovídá konkrétnímu klientovi. Jména jsou ve sloupci A, příjmení ve sloupci B a profese ve sloupci C.

Kliknutím zobrazíte

Vytvoření dokumentu aplikace Word (.doc nebo .docx)


Kliknutím zobrazíte

Vytvořte "šablonu" (word-soubor) pro generování nových dokumentů (word-soubory). Zde text "šablony" obsahuje názvy sloupců excelového souboru, orámované složenými závorkami: (A), (B) a (C).

Program vygeneruje nové doklady podle "šablony" nahradí všechny (A), (B) a (C) odpovídající hodnoty buněk ze souboru aplikace Excel: (A)- název, (B)- příjmení, (C)- povolání.

Na kartě můžete také nastavit vlastní znaky ohraničení Nastavení programy.

Vyberte cesty pro soubory a složky


Vyberte cesty pro soubory a složky (tlačítka označená Vybrat). V programu určíte následující cesty:

Excel soubor s daty (*.xls, *.xlsx)- toto je cesta k vašemu excelovému souboru s daty (informace o zákazníkovi);

Soubor šablony aplikace Word (*.doc, *.docx) je cesta k vaší "šabloně" (slovní soubor vytvořený v předchozím kroku);

Složka pro uložení nových souborů aplikace Word- toto je cesta ke složce, kam program uloží nově vygenerované dokumenty.

Kliknutím zobrazíte

Nastavte listy a řádky požadovaných dat


Kliknutím zobrazíte

Nastavte počty listů a řádků vašeho excelového souboru s daty (informacemi o klientech), na kterých chcete generovat dokumenty:

Datové listy souborů Excel- počet listů vašeho excelového souboru, které se budou podílet na tvorbě nových dokumentů;

Datové řádky souboru Excel- řádková čísla listů (listy uvedené v Datové listy souborů Excel) vašeho excelového souboru, který se bude podílet na tvorbě nových dokumentů. Na základě údajů každého zadaného řádku bude vytvořen samostatný dokument (soubor word).

Číslování listů a řádků v programu začíná na 1 .