Біз PHP әзірлеушілері өзара әрекеттесетін әлемде өмір сүріп жатырмыз операциялық жүйе Windows. WMI (Windows басқару интерфейсі) Windows басқару) - осындай мысалдардың бірі Microsoft Office бағдарламасымен өзара әрекеттесу.

Бұл мақалада біз Word және PHP арасындағы қарапайым интеграцияны қарастырамыз: ұрпақ Microsoft құжаты PHP (және оның Interop кеңейтімі) көмегімен HTML пішініндегі Word негізіндегі енгізу өрістері.

Дайындық кезеңдері

Ең алдымен, бізде негізгі WAMP ортасы орнатылғанына көз жеткізейік. Interop тек Windows жүйесінде болғандықтан, бізге біздің Apache серверіжәне РНР орнатуы орналастырылды Windows құрылғысы. Бұл мүмкіндікте мен EasyPHP 14.1 қолданамын, оны орнату және конфигурациялау өте оңай.

Сізге қажет келесі нәрсе - Microsoft Office бағдарламасын орнату. Нұсқа өте маңызды емес. Мен Microsoft Office 2013 Pro бағдарламасын пайдаланамын, бірақ Office бағдарламасының 2007 жылдан асқан кез келген нұсқасы жақсы болуы керек.

Сондай-ақ бізде Interop қолданбасын әзірлеу үшін орнатылған кітапханалар бар екеніне көз жеткізуіміз керек (PIA, Primary Interop Assemblies, Main Interop Assemblies). Windows Explorer бағдарламасын ашып, каталогқа өту арқылы білуге ​​болады \assembly , сонда біз орнатылған жинақтардың жиынтығын көруіміз керек:

Мұнда сіз Microsoft.Office.Interop.Word элементін көре аласыз (скриншотта асты сызылған). Бұл біз демонстрацияда қолданатын құрылым болады. «Ассамблея атауы», «Нұсқа» және «Ашық кілт белгісі» өрістеріне ерекше назар аударыңыз. Жақында біз оларды PHP сценарийінде қолданамыз.

Бұл каталог сонымен қатар бағдарламаларыңызда пайдалануға қолжетімді басқа жинақтарды (оның ішінде бүкіл Office тобын) қамтиды (тек PHP үшін ғана емес, сонымен қатар VB.net, C# және т.б.).

Егер жинақтар тізімі бүкіл Microsoft.Office.Interop бумасын қамтымаса, PIA қосу арқылы Office бағдарламасын қайта орнату керек немесе Microsoft сайтынан буманы қолмен жүктеп алып, орнату керек. Толығырақ нұсқаулар алу үшін осы MSDN бетін қараңыз.

Түсініктеме: Жүктеп алу және орнату үшін тек PIA Microsoft Office 2010 дистрибуциясы қол жетімді.Бұл бумадағы жинақтардың нұсқасы 14.0.0 және 15 нұсқасы тек Office 2013 нұсқасымен қамтамасыз етілген.

Соңында php.ini ішінде php_com_dotnet.dll кеңейтімін қосып, серверді қайта іске қосу керек.

Енді біз бағдарламалауға көшеміз.

HTML пішіні

Бұл мысалдың негізгі бөлігі сервер жағында болғандықтан, біз пішіні бар қарапайым бетті жасаймыз, ол келесідей болады:

Бізде атқа арналған мәтіндік өріс, жынысқа арналған радио түймелер тобы, жас бойынша жүгірткі және хабарлама енгізуге арналған мәтін енгізу аймағы, сондай-ақ әйгілі «Жіберу» түймесі бар.

Бұл файлды "index.html" ретінде виртуалды хост каталогында сақтаңыз, сонда оған http://test/test/interop сияқты мекенжайда қол жеткізуге болады.

Сервер бөлігі

Сервер жағындағы өңдеуші файлы әңгімеміздің негізгі мақсаты болып табылады. Алдымен мен осы файлдың толық кодын беремін, содан кейін оны кезең-кезеңімен түсіндіремін.

көрінетін = шын; $fn = __DIR__ . "\\template.docx"; $d = $w->Құжаттар->Ашық($fn); echo «Құжат ашық.


"; $flds = $d->Өрістер; $count = $flds->Санау; echo "Құжатта $count өрістері бар.
"; жаңғырық "
    "; $mapping = setupfields(); foreach ($flds $index => $f) ( $f->Select(); $key = $mapping[$index]; $value = $inputs[$key]; if ($key == "гендер") ( if ($value == "m") $value = "Мырза"; else $value = "Ханым"; } if($key=="printdate") $value= date ("Y-m-d H:i:s"); $w->Selection->TypeText($value); echo "!}
  • Мен $индекс өрісін тағайындаймын: $key мәні $мән
  • "; ) жаңғырық "
"; echo "Өңдеу аяқталды!

"; echo "Мен жазып жатырмын, күте тұрыңыз...
"; $d->PrintOut(); ұйқы(3); жаңғырық "Дайын!"; $w->Шығу(жалған); $w=null; function setupfields() ( $mapping = array(); $mapping = "гендер"; $mapping = "аты"; $mapping = "жас"; $mapping = "msg"; $mapping = "printdate"; return $mapping; )

$inputs айнымалысын пішіннен алынған мәндермен толтырғаннан кейін, сондай-ақ printdate пернесі бар бос элементті жасағаннан кейін (мұны не үшін жасағанымызды кейінірек талқылаймыз), біз төрт өте маңызды жолға келеміз:

$assembly = "Microsoft.Office.Interop.Word, Нұсқа=15.0.0.0, Мәдениет=бейтарап, PublicKeyToken=71e9bce111e9429c"; $class = "Microsoft.Office.Interop.Word.ApplicationClass"; $w = жаңа DOTNET($құрастыру, $сынып); $w->көрінетін = шын;

РНР-дегі COM манипуляторы «жинақтау» ішінде сынып данасын жасауды талап етеді. Біздің жағдайда біз Word бағдарламасымен жұмыс істейміз. Бірінші скриншотты қарасаңыз, Word бағдарламасына толық құрастыру қолтаңбасын жаза аласыз:

  • «Аты», «Нұсқа», «Ашық кілт таңбалауышы» - мұның бәрі «c:\Windows\assembly» ішінде көруге болатын ақпараттан алынған.
  • «Мәдениет» әрқашан бейтарап

Біз сілтеме жасағымыз келетін сынып әрқашан «жинақ атауы» + « .ApplicationClass « деп аталады.

Осы екі параметрді орнату арқылы біз Word бағдарламасымен жұмыс істеуге арналған нысанды аламыз.

Бұл нысан фондық режимде қалуы мүмкін немесе көрінетін төлсипатты true мәніне орнату арқылы оны жұмыс режиміне қоюға болады.

Келесі қадам өңдеуді қажет ететін құжатты ашу және $d айнымалысына «құжат» данасын жазу.

Пішін деректеріне негізделген құжатта мазмұнды жасау үшін бірнеше бағытты орындауға болады.

Ең нашар нәрсе - құжаттың мазмұнын PHP-де қатты кодтау, содан кейін оны Word құжатына шығару. Мен мұны келесі себептерге байланысты жасамауға кеңес беремін:

  1. Сіз икемділікті жоғалтасыз. Шығару файлындағы кез келген өзгерістер PHP кодына өзгертулер енгізуді талап етеді.
  2. Бұл басқару мен көріністің бөлінуін бұзады
  3. Сценарийде құжат мазмұнына стильдерді қолдану (туралау, қаріптер, стильдер және т.б.) код жолдарының санын айтарлықтай арттырады. Стильдерді бағдарламалы түрде өзгерту тым қиын.

Басқа нұсқа іздеу және ауыстыруды пайдалану болады. PHP-де бұл үшін жақсы кіріктірілген қондырғылар бар. Біз Word құжатын жасай аламыз, онда біз кейінірек ауыстырылатын арнайы бөлгіштері бар белгілерді орналастырамыз. Мысалы, біз келесі үзіндіні қамтитын құжат жасай аламыз:

және РНР көмегімен біз оны формадан алынған «Аты» өрісінің мазмұнымен оңай ауыстыра аламыз.

Бұл қарапайым және бізді бірінші әдісте кездесетін барлық жағымсыз салдардан құтқарады. Бізге дұрыс бөлгішті таңдау керек, бұл жағдайда біз үлгіні пайдаланамыз.

Мен үшінші әдісті ұсынамын және ол Word бағдарламасын тереңірек білуге ​​негізделген. Біз өрістерді толтырғыш ретінде қолданамыз және PHP кодын пайдалана отырып, өрістердегі мәндерді сәйкес мәндерімен тікелей жаңартамыз.

Бұл тәсіл икемді, жылдам және Word үздік тәжірибелеріне сәйкес келеді. Сондай-ақ ол құжатта толық мәтінді іздеуді болдырмауға көмектеседі, бұл өнімділік үшін жақсы. Бұл шешімнің де кемшіліктері бар екенін ескертемін.

Word ең басынан бастап өрістер үшін аталған индекстерді қолдамады. Жасалатын өрістер үшін атауларды көрсетсек те, біз әлі де осы өрістердің сандық идентификаторларын пайдалануымыз керек. Бұл өріс индексін пішіндегі өріс атауына сәйкестендіру үшін неліктен бөлек функцияны (орнату өрістері) пайдалану керектігін де түсіндіреді.

Бұл демонстрациялық сабақта біз 5 MERGEFIELD өрісі бар құжатты қолданамыз. Үлгі құжатын сценарий өңдегішімен бірдей жерге орналастырамыз.

Басып шығару күні өрісінде пішінде сәйкес өріс жоқ екенін ескеріңіз. Сондықтан $inputs массивіне бос басып шығару күні элементін қостық. Онсыз сценарий әлі де орындалады және іске қосылады, бірақ PHP басып шығару күні индексі $inputs массивінде жоқ екендігі туралы ескерту береді.

Өрістерді жаңа мәндермен ауыстырғаннан кейін біз құжатты пайдаланып басып шығарамыз

$d->PrintOut();

PrintOut әдісі бірнеше қосымша параметрлерді қабылдайды және біз оның ең қарапайым түрін қолданамыз. Бұл Windows құрылғысына бекітілген әдепкі принтерде құжаттың бір көшірмесін басып шығарады.

Сондай-ақ шығарылымды басып шығару алдында алдын ала қарау үшін PrintPreview шақыруға болады. Толық автоматты ортада біз, әрине, PrintOut әдісін қолданамыз.

Басып шығару тапсырмасын кезекке қою үшін уақыт қажет болуы үшін Word қолданбасын өшірмес бұрын біраз күту қажет болуы мүмкін. Кідіріссіз(3), $w->Quit әдісі дереу орындалады және тапсырма кезекке қойылмайды.

Соңында біз $w->Quit(false) деп атаймыз, ол біздің сценарий арқылы шақырылған Word қолданбасын жабады. Әдіске берілетін жалғыз параметр - шығу алдында файлды сақтау нұсқаулығы. Құжатқа өзгертулер енгіздік, бірақ оларды сақтағымыз келмейді, өйткені бізге кейінгі жұмыс үшін таза үлгі қажет.

Кодты қолданып болған соң, пішін бетін жүктеп, кейбір мәндерді толтырып, оны жібере аламыз. Төмендегі суреттер сценарийдің шығысын, сондай-ақ жаңартылған Word құжатын көрсетеді:

Жақсартылған өңдеу жылдамдығы және PIA туралы аздап

РНР – әлсіз терілген тіл. Object түріндегі COM нысаны. Сценарий жазу кезінде бізде Word қолданбасы, құжат немесе өріс болсын, нысанның сипаттамасын алу мүмкіндігі жоқ. Бұл нысанның қандай қасиеттері бар екенін немесе ол қандай әдістерді қолдайтынын білмейміз.

Бұл даму жылдамдығын айтарлықтай бәсеңдетеді. Әзірлеуді жылдамдату үшін алдымен C# тілінде функцияларды жазуды, содан кейін кодты PHP тіліне аударуды ұсынамын. Мен C# әзірлеуге арналған «#develop» деп аталатын тегін IDE ұсына аламын. Сіз оны таба аласыз. Мен оны Visual Studio-дан артық көремін, себебі #develop кішірек, оңай және жылдамырақ.

C# кодын PHP-ге көшіру көрінетіндей қорқынышты емес. Сізге C# тілінде бірнеше жолды көрсетуге рұқсат етіңіз:

Word.Application w=жаңа Word.Application(); w.Visible=true; Жол жолы=Application.StartupPath+"\\template.docx"; Word.Document d=w.Documents.Open(жол) Word.Document ретінде; Word.Fields flds=d.Fields; int len=flds.Count; foreach (Word.Field f in flds) ( f.Select(); int i=f.Index; w.Selection.TypeText("..."); )

Сіз C# коды мен бұрын көрсеткен PHP кодына өте ұқсас екенін байқайсыз. C# - қатты терілген тіл, сондықтан сіз осы мысалда бірнеше трансляциялау операторлары бар екенін және айнымалыларды теру қажет екенін байқайсыз.

Айнымалының түрін көрсету арқылы сіз таза кодты және автотолтыруды пайдалана аласыз және әзірлеу жылдамдығы айтарлықтай артады.

PHP әзірлеуді тездетудің тағы бір жолы Word бағдарламасында макросты шақыру болып табылады. Біз бірдей әрекеттер тізбегін орындаймыз, содан кейін оны макрос ретінде сақтаймыз. Макрос Visual Basic тілінде жазылған, оны PHP тіліне аудару да оңай.

Және, ең бастысы, Microsoft Office PIA құжаттамасы, әсіресе әрбір Office бағдарламасына арналған аттар кеңістігі құжаттамасы қол жетімді ең егжей-тегжейлі анықтамалық материал болып табылады. Ең көп қолданылатын үш қолданба:

  • 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

Қорытынды

Бұл мақалада біз Word құжатын PHP COM кітапханалары мен Microsoft Office бірлесіп жұмыс істеу мүмкіндіктері арқылы деректермен қалай толтыру керектігін көрсеттік.

Windows және Office бағдарламалары күнделікті өмірде кеңінен қолданылады. Office/Window және PHP мүмкіндіктерін білу әрбір PHP және Windows әзірлеушісі үшін пайдалы болады.

PHP COM кеңейтімі осы комбинацияны пайдалануға жол ашады.

Біз Word бағдарламасында бұрын бастаған пішіндермен жұмыс тақырыбын жалғастырамыз. Алдыңғы мақалаларда біз пішіндерді тек «озық пайдаланушы» тұрғысынан қарадық, яғни. Біз қолмен толтыруға оңай құжаттарды жасадық. Бүгін мен осы тапсырманы кеңейтуді ұсынғым келеді және құжаттарды құру үшін Мазмұнды басқару механизмін қолдануға тырысамын.

Тікелей тапсырмаға кіріспес бұрын, мазмұнды басқару элементтеріне арналған деректер Word құжаттарында қалай сақталатыны туралы бірнеше сөз айтқым келеді (әзірше олардың құжаттың мазмұнымен қалай байланыстырылғанын әдейі өткізбеймін, бірақ мен қайта ораламын деп үміттенемін. Бұл туралы кейде келесі мақалаларда).

Логикалық сұрақ - бұл не? itemProps1.xmlжәне ұқсас компоненттер? Бұл компоненттер деректер көздерінің сипаттамаларын сақтайды. Сірә, әзірлеушілер жоспарлағандай, құжатқа енгізілген xml файлдарынан басқа, басқалары пайдаланылуы керек еді, бірақ әзірге тек осы әдіс жүзеге асырылды.

Неліктен олар бізге пайдалы? itemPropsX.xml? Олардың xml схемаларын тізімдеу фактісі (олардың targetNamespace), олар ата-анада қолданылады itemX.xml. Бұл дегеніміз, егер біз құжатқа бірнеше реттелетін xml қоссақ, қажетсін табу үшін бізге өту керек. itemPropsX.xmlқұрамдастарды және дұрыс схеманы, демек, дұрысты табыңыз itemX.xml.

Енді тағы бір нәрсе. Біз компоненттер арасындағы қосылымдарды қолмен талдамаймыз және тек базалық Packaging API пайдалана отырып, қажеттісін іздемейміз! Оның орнына біз Open XML SDK қолданамыз (оның құрастырулары NuGet арқылы қол жетімді). Әрине, біз бұл API туралы бұрын бір сөз айтқан жоқпыз, бірақ біздің тапсырмамыз үшін одан минималды талап етіледі және барлық код өте ашық болады.

Ал, негізгі кіріспе жасалды, біз мысалдан бастай аламыз.

Қалыптасқан дәстүр бойынша біз мақалада сызған «Кездесу есебін» аламыз. Естеріңізге сала кетейін, құжат үлгісі келесідей болды:

Және бұл құжат өрістері байланыстырылған XML

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

1-қадам: Деректер үлгісін жасаңыз

Шын мәнінде, біздің міндетіміз құжатты жасау ғана емес, әзірлеушіге де, пайдаланушыға да қолдануға ыңғайлы құрал жасау (кем дегенде жобалық нұсқада).

Сондықтан біз модельді C# класс құрылымы түрінде жариялаймыз:

Жалпыға ортақ сынып MeetingNotes (қоғамдық MeetingNotes() ( Қатысушылар = жаңа тізім (); Шешімдер = жаңа тізім (); ) жалпы жол Тақырып ( алу; орнату; ) ашық DateTime Күн ( алу; орнату; ) жалпы жол Хатшы ( алу; орнату; ) жалпы тізім Қатысушылар ( алу; орнату; ) жалпы тізім Шешімдер ( алу; орнату; ) ) жалпы сынып Шешім ( жалпы жол Мәселе ( алу; орнату; ) жалпы жол Шешім ( алу; орнату; ) жалпы жол Жауапты ( алу; орнату; ) жалпы DateTime ControlDate ( алу; орнату; ) ) жалпы сынып Қатысушы ( жалпыға ортақ жол атауы ( алу; орнату; ) )

Жалпы алғанда, XML сериялауын басқару үшін атрибуттар қосылғанын қоспағанда, ерекше ештеңе жоқ (үлгідегі атаулар мен қажетті XML сәл өзгеше болғандықтан).

2-қадам: Жоғарыдағы үлгіні XML-ге сериялау

Тапсырма, негізінен, тривиальды. Бір нәрсе үшін болмаса, «біздің сүйікті XmlSerializer-ді алып, барыңыз» деп аталатын нәрсе Бірақ

Өкінішке орай, в ағымдағы нұсқасы Office, шамасы, қате бар, ол келесідей: егер пайдаланушы xml файлында болса бұрыннегізгі аттар кеңістігін жариялау арқылы (Word көрсету үшін элементтерді алуы керек), басқасын жариялаңыз, содан кейін қайталанатын Мазмұнды басқару элементтері дұрыс көрсетіле бастайды (үлгінің өзінде қанша элементтер көрсетіледі, яғни қайталанатын бөлім). жұмыс істемейді).

Анау. Бұл жұмыс істейтін xml:

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

және бұл да:

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

бірақ бұл енді жоқ:

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

Мен Connect жүйесінде Microsoft қолдау қызметіне қате жіберуге тырыстым, бірақ қандай да бір себептермен Office қателерін жіберуге рұқсатым жоқ. Ал MSDN форумындағы талқылау да көмектеспеді.

Жалпы, қажетті уақытша шешім. Егер біз XML-ді қолмен жасаған болсақ, ешқандай проблемалар болмас еді - біз бәрін өзіміз жасайтын едік. Дегенмен, бұл жағдайда мен стандартты XmlSerializer қолданбасын пайдаланғым келеді, ол әдепкі бойынша шығыс XML-ге, тіпті бұл аттар кеңістігі пайдаланылмаса да, бірнеше аттар кеңістігін қосады.

XmlSerializer ішіндегі өз аттар кеңістігіміздің шығуын толығымен басамыз. Рас, бұл тәсіл шынымен қажет болмаса ғана жұмыс істейді (әйтпесе олар әлі де қосылады және бізден бұрын ғана болады).

Шын мәнінде, бүкіл код (айнымалы болған жағдайда жиналыс жазбалары MeetingNotes түріндегі бұрын толтырылған нысанды қамтиды):

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

var namespaces = new XmlSerializerNamespaces();
аттар кеңістігі.Қосу(“” , “” );

serializer.Serialize(serializedDataStream, жиналыс жазбалары, аттар кеңістігі);
serializedDataStream.Seek(0, SeekOrigin.Begin);

3-қадам. Алынған XML файлын Word құжатына енгізіңіз.

Мұнда біз келесідей әрекет етеміз:

  • үлгіні көшіріп, көшірмені ашыңыз
  • онда қажетті пайдаланушы xml файлын табыңыз (аттар кеңістігі бойынша іздеу «urn: жиналыс жазбалары»)
  • компоненттің мазмұнын біздің XML-мен ауыстырыңыз

File.Copy(үлгі атауы, нәтижеҚұжатАты, шын ); (var document = WordprocessingDocument.Open(resultDocumentName, true )) ( var xmlpart = document.MainDocumentPart.CustomXmlParts .Single(xmlPart => xmlPart.CustomXmlPropertiesPart.DataStoreItem.SchemaReferences.Of) пайдалану ().Any(sr => sr.Uri.Value == "urn:MeetingNotes"!}

Біз бәріміз мәтінмен бір немесе басқа жолмен айналысамыз. Кейде қандай да бір тапсырма үшін, мысалы, пішімдеумен ойнау үшін мәтіннің үлкен немесе өте үлкен емес көлемін жасау қажеттілігі туындайды, бірақ қолында мәтін жоқ, оны өзіңіз жазуға тым жалқаусыз. Не істеу? Жауап қарапайым: Word бағдарламасына енгізілген кездейсоқ мәтін генераторын пайдаланыңыз!

Microsoft Word редакторында арнайы пәрмендердің көмегімен мәтінді тез және оңай жасауға болады. Мен Word 2007 бағдарламасын теңіз шошқасы ретінде қолданамын.Бұл пәрмендер Word бағдарламасының барлық нұсқаларында жұмыс істеуі керек. Мен сізге мәтінді құрудың үш әдісі туралы айтып беремін.

1-әдіс: rand() пайдалану

rand() функциясы локализацияланған үлгі мәтінді, 3 абзацты 3 сөйлеммен кірістіреді. Word бағдарламасын ашыңыз, курсорды мәтін топтамасы пайда болғалы тұрған жерге қойыңыз және пәрменді енгізіңіз:

және Enter пернесін басыңыз. Rand функциясының өзі жойылып, оның орнында мәтіннің 3 абзацы пайда болады:

Бірақ бұл бәрі емес. Егер сізге көп мәтін қажет болса, rand функциясын келесідей қосымша дәлелдермен пайдалануға болады:

=ранд(x,y)

Қайда» x"параграфтардың санын білдіреді және" ж«—әр абзацтағы сөйлемдер саны. Мысалы, =ранд(20,5)әрқайсысы бес сөз тіркесі бар 20 абзацты енгізеді. А =ранд(7)әрқайсысы 3 сөйлемнен тұратын 7 абзацты енгізеді.

2-әдіс: lorem() пайдалану

Үлгі ретінде жақсы ескі Lorem Ipsum енгізу үшін lorem() функциясын пайдаланыңыз. Келесі пәрменді теріп, Enter пернесін басыңыз:

Ал біз мына пан-латын мәтінін аламыз

lorem() функциясы сонымен қатар rand() сияқты қосымша аргументтерді абзацтар мен сөйлемдер саны түрінде оңай қабылдайды. Аргументтерсіз функция әдепкі бойынша әрқайсысы үш сөйлемнен тұратын 3 абзацты кірістіреді.

3-әдіс. rand.old() функциясы

Қолданылуы алдыңғы пәрмендерге ұқсас:

=rand.old()

және Enter пернесін басыңыз.

Rand.old() функциясы 2003 жылға дейін ескі кеңсемен үйлесімділік үшін қалдырылған. Қолдану әдісі алдыңғы екеуімен бірдей, тек мәтін бірдей сөз тіркестерінен тұрады: «Осы жұмсақ француз орамдарын тағы жеп, шай ішіңіз». Қаріптермен анда-санда жұмыс істеген кез келген адам бұл фразаны біледі.

Алғашқы екі әдістегідей аргументтерді жіберуге болады.

Барлығы, мәтіндер жасалды, енді сіз осы жұмсақ француз орамдарын көбірек жеп, шай іше аласыз :)

Жоғарыдағы функцияларды пайдаланып мәтінді қоя алдыңыз ба?

Олимпиаданың қорытындысын шығарғаннан кейін, қатысушылардан тапсырылған (немесе өтпеген) пәндердің нәтижелері бар хаттарды жіберуді талап еткенде, мен емтихан нәтижелерін енгізу үшін бір қыздың отырғанын және студенттің аты-жөнін қолдарын пайдаланғанын байқадым. және басқа да мәліметтер хат үлгісінде. Оның алдында Excel бағдарламасынан аттары мен бағалары жазылған бірнеше парақ жатыр. Көшіру-қою, Ctrl+C - Ctrl+V, толық атауды номинативтіден тектік регистрге аудару, осылайша жұмыс үш деректер парағының бірінші жартысы арқылы орындалды. Сіздің ойыңызша, ол деректерді көшіріп, содан кейін нәтижені тексеріп қанша уақыт отырды? Менің ойымша, бұл өте көп уақытты алады және аздаған қателер болады. Бірақ содан кейін ол пошта конверттеріне әлі де қол қоюға мәжбүр болды... Мен оның уақытына өкіндім және бірнеше минут ішінде бұл процесті қарапайым құралдардың көмегімен қалай автоматтандыруға болатынын көрсеттім. Кішкене экскурсиядан кейін оның жұмысы 20 минутта аяқталды.

Бұл сабақта мен сізге ең аз уақыт жұмсай отырып, құжаттарды (хаттар, шақырулар) қалай тез жасауға болатынын көрсетемін. IN әртүрлі нұсқаларБұл сипатталған процесс әртүрлі тілдерде әртүрлі аталады. Сонымен, орыс тілінде «Біріктіру», ал ағылшын тілінде «Біріктіру» болып табылады.

Тізбек әріптер қайдан келеді деп үміттенемін зейнетақы қоры, салық хабарламалары дәл осылай жасалады :)

Құралдар

Құжаттарды жасау үшін бізге OpenOffice Writer керек. Онда біз әріп үлгісін жасаймыз. Сондай-ақ сізге OpenOffice Calc қажет болады. Онда біз, мысалы, кешке шақырғымыз келетін адамдардың аты-жөні мен мекен-жайы бар мәліметтер базасын жасаймыз. MS Word және Excel бағдарламаларын OpenOffice бумасындағы бағдарламалардың орнына оңай пайдалануға болады. Деректер базасын MS Access-те оңай сақтауға болады. Сонымен, бастайық.

Мәліметтер базасын құру

Деректер базасы MS Excel немесе OpenOffice Calc бағдарламаларындағы кестеден басқа ештеңе емес, мұнда деректер бағандарға орналастырылған және бірінші жол бағандарды атау үшін пайдаланылады. Мысалы, «толық аты», «қала», «индекс», «мекен-жай» бағандарын құрайық. Деректерді енгізіп, файлды дискіге сақтаңыз.



Басқа көздерді Outlook мекенжайлық кітабы немесе MS Access дерекқоры сияқты дерекқорлар ретінде де пайдалануға болады.

Хат үлгісін құру

Хат үлгісін жасау сәл күрделірек. Кестедегі деректер (біздің дерекқорымыз) шаблонға сол күйінде кірістірілетіндіктен, хат сәйкесінше жазылуы керек. Егер сіздің толық аты-жөніңіз дерекқорыңызда номинативті жағдайда болса, онда сіз «Құрметті!<ФИО>!" және конверт үшін «Кімге:<ФИО>«. Соңғы жағдайда толық атау біршама ыңғайсыз болып көрінеді.

Хат үлгісін құрастырған кезде мен біреуге хат жазудан бастауды ұсынамын нақты адамға. Сіз мұны өзіңіз жасай аласыз. Содан кейін онда дерекқордан алатын деректерді бөлектеңіз және оны сәйкес өрістермен ауыстырыңыз. Өрістегі таңдалған мәтінді ауыстырмас бұрын, дерекқордағы өріс қай әріптен басталуы керек екеніне назар аударуды ұсынамын (кіші немесе бас әріп). Әрине, сіз шаблонды өрістермен бірден жасай аласыз, бірақ содан кейін кейбір қателерді байқамауыңыз мүмкін, мысалы, істердегі сәйкессіздіктер.



Қазірдің өзінде берілген үлгіде бізге тектік жағдайда толық атау және тек аты мен әкесінің атын қамтитын өріс қажет болатыны анық. Бірінші өрісте біз «Кімге» сөзін «Алушы» дегенге ауыстыра аламыз, содан кейін номинативті жағдайда толық аты бізге өте қолайлы болады. Екінші өріспен бәрі біршама күрделірек және біз дерекқорда басқа бағанды ​​жасап, оны сәйкес деректермен толтыруымыз керек. Келесі сабақтардың бірінде мен мұны автоматты түрде қалай жасау керектігін айтамын, бірақ қазір бізде мұндай өріс бар деп есептейміз.

Өрісті кірістіру және үлгіні дерекқорға байланыстыру үшін келесі әрекеттер тізбегін орындау керек. OpenOffice Writer бағдарламасында дерекқорды таңдаңыз



және «Анықтау» түймесін басыңыз.



Содан кейін қосылған дерекқордан қажетті орынға өрісті енгізіңіз. Ол үшін Ctrl+F2 пернелер тіркесімін басыңыз немесе «Кірістіру» мәзірінде «Өрістерді» және «Басқаларды» таңдаңыз. Ашылған терезеде «Дерекқорлар» қойындысын таңдап, өріс түрінде «Пошталарды біріктіру өрістерін» таңдап, дерекқордан сәйкес өрісті таңдап, «Кірістіру» түймесін басыңыз. Бұл терезеде нақты дерекқорды да таңдауға болады.



Бір өріс енгізілгеннен кейін, ағымдағы терезені жаппастан, оны келесі өріспен ауыстыру үшін мәтінді таңдап, өрісті таңдап, «Кірістіру» түймесін қайтадан басуға болады. Әр өріс үшін және т.б.

MS Word үшін жағдай біршама ұқсас және, мүмкін, ыңғайлырақ. MS Excel бағдарламасында кестені жасағаннан кейін MS Word бағдарламасын іске қосып, «Таратулар» қойындысына өтіңіз. Бұл қойындыда сіз үш қажетті қадамды көре аласыз: «Біріктіруді бастау», «Құжатты құрастыру және өрістерді кірістіру» және «Аяқтау». Сондай-ақ «Нәтижені көру» аралық қадамы бар, бірақ ол міндетті емес.

Сонымен, жұмыс құжатты таңдаудан басталады. Бұл әріптер, стикерлер немесе кәдімгі Word құжаты болуы мүмкін. Сіз процестің барлық кезеңдеріне басшылық ететін біріктіру шеберін дереу іске қоса аласыз. Келесі қадам – алушыны, яғни мәліметтер базасын таңдау. Мұнда дайын мәліметтер қорын таңдауға болады (мысалы, алдыңғы кезеңде жасалған MS Excel кестесі), немесе жаңа тізім құру. Тізім таңдалғаннан кейін «Біріктіру өрісін кірістіру», «Алушылар тізімін өзгерту» және т.б түймелер белсенді болады.Сәйкес түймешікпен ашылатын «Алушылар тізімін өзгерту» диалогтық терезесі арқылы сіз бүкіл тізімнен таңдауға болады. тек біріктіру үшін қажетті жазбалар.







Өрістерді кірістіру кезінде «Біріктіру өрістерін бөлектеу» түймесін басу арқылы барлық өрістерді сұр түспен бөлектеу ыңғайлы деп есептеймін. Әйтпесе, мұндай өрістер көп болса, олар мәтінде жоғалып кетуі мүмкін.

Сонымен, шаблон дайын.

Әріптерді құру

Соңғы кезең әріптерді құру болып табылады. OpenOffice-те мұны істеу үшін «Құралдар» мәзірінде «Пошталарды біріктіру шебері...» тармағын таңдап, үлгіні дерекқормен біріктіру үшін барлық ұсынылған қадамдарды орындаңыз.





Диалогтық терезеде біз ұсынылған 8 тармақтың ішінде кейбір тармақтарды орындаудың қажеті жоқ екенін көреміз. Сонымен, біз құжатты жасап қойдық және оны өңдеудің қажеті жоқ, сонымен қатар мекенжай блогын ендірдік. Бірақ бәрін ретімен алайық.

Алдымен, ағымдағы құжат негізінде әріптер жасап жатқанымызды таңдап, терезенің төменгі жағындағы «Келесі» түймесін басыңыз. Екінші мәселе - бұл қағаз хатты немесе электрондық поштаны алуды таңдау. Әріпті файлға сақтау үшін біріншісін таңдау керек. «Келесі» түймесін басыңыз. Үшінші тармақ бізге мекенжай блогын жасауды сұрайды, бірақ біз оны қолмен жасағандықтан, біз барлық құсбелгілерді алып тастап, келесі қадамға өтеміз. Мұнда бізден сұрау енгізу сұралады, бірақ бізде бар, сондықтан біз «Келесі» түймесін басыңыз. Алтыншы пункт - құжатты өңдеу, дерекқордан енгізілген өрістері бар құжатты қарау және қажет болған жағдайда кейбір өрістерді алып тастау.



7-қадам үлгіні дерекқорға қосу нәтижесінде жасалған файлдардың әрқайсысын өңдеуді сұрайды. Ақырында, соңғы, 8-ші қадамда сіз қабылданған құжаттармен не істеу керектігін таңдай аласыз. Электрондық пошта арқылы сақтауға, басып шығаруға немесе жіберуге болады. Бұл жағдайда сіз барлық құжаттарды бір файлда немесе әрбір құжатты бөлек сақтай аласыз.

MS Word бағдарламасында біріктіру процесі «Табу және біріктіру» түймесін басу арқылы аяқталады.



Ашылмалы мәзірден барлық әріптерді басып шығаруға және электрондық пошта арқылы жіберуге болатыны анық, бірақ олардың барлығын файлға сақтауға болатыны анық емес. Сақтау үшін бірінші тармақты таңдау керек - «Жеке құжаттарды өзгерту». Бұл жаңа құжатты ашады, онда әрбір жаңа әріп жаңа бетте орналасады және бұл файлды осында сақтауға болады.

Қорытынды

Сонымен, осы сабақта сіз үлгі негізінде құжаттарды жасау үшін біріктіру құралын пайдалануды үйрендіңіз. Әрекеттер ретін қысқаша жазайық:

  1. Өрістерді толтыру үшін деректер алынатын кесте процессорында деректер қорын құру қажет.
  2. Сізге әріп үлгісін жасау керек.
  3. Біріктіруді орындап, нәтижені сақтаңыз.

А, бағандағы фамилиялар Бжәне бағандағы мамандықтар C.

2. Word құжатын жасаңыз (.doc немесе .docx)


(A), (B)Және (С).

(A), (B)Және (С) (A)- аты, (B)- тек, (С)- кәсіп.

Параметрлербағдарламалар.

3. Файлдар мен қалталардың жолдарын таңдаңыз


таңдаңыз

4. Қажетті деректердің парақтары мен жолдарын көрсетіңіз


Excel файлының деректер парақтары

Excel файлының деректер жолдары Excel файлының деректер парақтары

1 .

Құжатты қалыптастыруға деректері бар Excel файлының барлық парақтары және/немесе жолдарының қатысуын қаласаңыз, оң жағындағы жазуы бар тиісті түймені басыңыз. Сандар(оның жазуы деп өзгереді Барлық).

5. Жаңа сөздік файлдарды атау үшін үлгіні орнатыңыз


Жаңа сөз файлдары үшін атау үлгісін орнатыңыз:

Жаңа сөздік файлдар атауларының үлгісі- бұл бағдарлама арқылы жасалған жаңа құжаттардың (сөздік файлдар) атауларына арналған үлгі. Мұндағы атау үлгісінде бұйра жақшалармен қоршалған excel файлының баған атаулары бар: (A)Және (B). Жаңа құжатты жасау кезінде бағдарлама барлығын ауыстырады (A)Және (B) excel файлындағы сәйкес ұяшық мәндері - бұл жаңа құжаттың атауы болады (word файлы).

Қойындыда жақтау таңбаларын орнатуға болады Параметрлербағдарламалар.

6. «Жасау» түймесін басыңыз.


түймешігін басыңыз Жасаужәне орындалу барысы экранда пайда болады. Қалыптастыруға қатысатын excel файлындағы жолдар санына дәл сонша құжаттар (сөздік файлдар) жасалады.

7. Барлығы


Барлық құжаттар (сөздік файлдар) жасалған және көрсетілген қалтада орналасқан Жаңа сөз файлдарын сақтауға арналған қалта. Барлық:)

Эксвог- үлгіні пайдаланып Excel бағдарламасынан Word бағдарламасына есеп генераторы

Excel файл деректеріне негізделген үлгіні (Word файлы) пайдаланатын тегін Word файл генераторы

Mac OS, Windows және Linux жүйелерінде жұмыс істейді

Жаңа жасалған сөз файлдарының атауларын орнатуға мүмкіндік береді

Қажетті деректердің парақтары мен жолдарын көрсетуге мүмкіндік береді

Excel баған атаулары үшін қоршаған таңбаларды көрсетуге мүмкіндік береді

Қолдануға оңай

Деректеріңізді Excel пішімінде (.xls және .xlsx) сақтаңыз және бірнеше рет басу арқылы Word файлдарын (.doc және .docx) жасаңыз :)


Бұл қалай жұмыс істейді?

Excel файлыңызды қараңыз


Бұл мысалда excel файлында клиенттер туралы ақпарат бар. Әрбір жол белгілі бір клиентке сәйкес келеді. Атаулар бағанда реттелген А, бағандағы фамилиялар Бжәне бағандағы мамандықтар C.

Көру үшін басыңыз

Word құжатын жасау (.doc немесе .docx)


Көру үшін басыңыз

Жаңа құжаттарды (сөздік файлдар) жасау үшін «үлгі» (сөздік файл) жасаңыз. Мұндағы «үлгі» мәтінінде бұйра жақшалармен қоршалған excel файлының бағандарының атаулары бар: (A), (B)Және (С).

Бағдарлама барлығын алмастыра отырып, «үлгіге» сәйкес жаңа құжаттарды жасайды (A), (B)Және (С) excel файлынан сәйкес ұяшық мәндері: (A)- аты, (B)- тек, (С)- кәсіп.

Сондай-ақ, қойындыда жақтау таңбаларын орнатуға болады Параметрлербағдарламалар.

Файлдар мен қалталар үшін жолдарды таңдаңыз


Файлдар мен қалталар үшін жолдарды таңдаңыз (белгіленген түймелер таңдаңыз). Бағдарламада сіз келесі жолдарды көрсетесіз:

Деректері бар Excel файлы (*.xls, *.xlsx)- бұл деректері бар Excel файлыңызға апаратын жол (тұтынушы туралы ақпарат);

Word үлгі файлы (*.doc, *.docx)- бұл сіздің «үлгіге» апаратын жол (алдыңғы қадамда жасалған сөздік файл);

Жаңа сөз файлдарын сақтауға арналған қалта- бұл бағдарлама жаңа жасалған құжаттарды сақтайтын қалтаға апаратын жол.

Көру үшін басыңыз

Қажетті деректердің парақтары мен жолдарын көрсетіңіз


Көру үшін басыңыз

Құжаттарды жасағыңыз келетін деректермен (тұтынушы ақпараты) Excel файлыңыздың парақтары мен жолдарының санын көрсетіңіз:

Excel файлының деректер парақтары- жаңа құжаттарды қалыптастыруға қатысатын excel файлыңыздың парақтарының нөмірлері;

Excel файлының деректер жолдары- парақтардың жол нөмірлері (парақтарда көрсетілген Excel файлының деректер парақтары) жаңа құжаттарды құруға қатысатын excel файлыңыздан. Әрбір көрсетілген жолдың деректері негізінде жеке құжат (сөздік файл) жасалады.

Бағдарламадағы парақтар мен жолдарды нөмірлеу мынадан басталады 1 .