เราอาศัยอยู่ในโลกที่นักพัฒนา PHP ต้องโต้ตอบด้วย ระบบปฏิบัติการหน้าต่าง WMI (อินเทอร์เฟซการจัดการ Windows) การจัดการวินโดวส์) - ตัวอย่างหนึ่งคือการโต้ตอบกับ ไมโครซอฟต์ ออฟฟิศ.

ในบทความนี้เราจะดูการบูรณาการอย่างง่ายระหว่าง Word และ PHP: การสร้าง เอกสารไมโครซอฟต์ช่องป้อนข้อมูลตามคำในรูปแบบ HTML โดยใช้ PHP (และส่วนขยาย Interop)

ขั้นตอนการเตรียมการ

ก่อนอื่น ตรวจสอบให้แน่ใจว่าเราได้กำหนดค่าสภาพแวดล้อม WAMP พื้นฐานไว้แล้ว เนื่องจาก Interop มีเฉพาะบน Windows เท่านั้น เราจึงจำเป็นต้องมี เซิร์ฟเวอร์อาปาเช่และการติดตั้ง PHP ถูกปรับใช้กับ เครื่องวินโดว์- ในด้านนี้ ฉันใช้ 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 ทั้งหมด เราจำเป็นต้องติดตั้ง Office ใหม่โดยเพิ่ม PIA หรือดาวน์โหลดแพ็คเกจด้วยตนเองจากไซต์ Microsoft และติดตั้ง สำหรับข้อมูลเพิ่มเติม คำแนะนำโดยละเอียดอ้างถึงหน้านี้ใน MSDN

ความคิดเห็น: มีเพียงการแจกจ่าย PIA Microsoft Office 2010 เท่านั้นที่สามารถดาวน์โหลดและติดตั้งได้ เวอร์ชันของแอสเซมบลีในแพ็คเกจนี้คือ 14.0.0 และเวอร์ชัน 15 จะมาพร้อมกับ Office 2013 เท่านั้น

สุดท้าย คุณต้องเปิดใช้งานส่วนขยาย php_com_dotnet.dll ใน php.ini และรีสตาร์ทเซิร์ฟเวอร์

ตอนนี้คุณสามารถไปยังการเขียนโปรแกรมได้แล้ว

แบบฟอร์ม HTML

เนื่องจากตัวอย่างนี้ส่วนใหญ่อยู่ที่ฝั่งเซิร์ฟเวอร์ เราจะสร้างเพจธรรมดาโดยมีแบบฟอร์มที่จะมีลักษณะดังนี้:

เรามีช่องข้อความสำหรับชื่อ กลุ่มปุ่มตัวเลือกสำหรับเพศ แถบเลื่อนสำหรับอายุ และพื้นที่ป้อนข้อความสำหรับป้อนข้อความ เช่นเดียวกับปุ่ม "ส่ง" ที่น่าอับอาย

บันทึกไฟล์นี้เป็น “index.html” ในไดเร็กทอรีโฮสต์เสมือน เพื่อให้สามารถเข้าถึงได้ตามที่อยู่ เช่น http://test/test/interop

ส่วนเซิร์ฟเวอร์

ไฟล์ตัวจัดการฝั่งเซิร์ฟเวอร์เป็นเป้าหมายหลักของการสนทนาของเรา ขั้นแรก ฉันจะให้โค้ดที่สมบูรณ์สำหรับไฟล์นี้ จากนั้นฉันจะอธิบายทีละขั้นตอน

มองเห็น = จริง; $fn = __DIR__ . "\\template.docx"; $d = $w->เอกสาร->เปิด($fn); echo "เอกสารเปิดอยู่


"; $flds = $d->Fields; $count = $flds->Count; echo "มีฟิลด์ $count ในเอกสาร
"; เอคโค่"
    "; $mapping = setupfields(); foreach ($flds as $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 "!}
  • ฉันกำหนดฟิลด์ $index: $key the value $value
  • "; ) เสียงสะท้อน"
; echo "การประมวลผลเสร็จสมบูรณ์!

"; echo "ฉันกำลังพิมพ์ กรุณารอสักครู่...
"; $d->PrintOut(); sleep(3); echo "เสร็จสิ้น!"; $w->Quit(false); $w=null; function setupfields() ( $mapping = array(); $mapping = "เพศ"; $mapping = "ชื่อ"; $mapping = "msg"; $mapping = "วันที่พิมพ์";

หลังจากที่เรากรอกตัวแปร $inputs ด้วยค่าที่ได้รับจากแบบฟอร์มแล้ว และยังสร้างองค์ประกอบว่างด้วยคีย์ printdate (เราจะพูดถึงสาเหตุที่เราทำสิ่งนี้ในภายหลัง) เราก็มาถึงสี่บรรทัดที่สำคัญมาก:

$assembly = "Microsoft.Office.Interop.Word, เวอร์ชัน=15.0.0.0, วัฒนธรรม=เป็นกลาง, PublicKeyToken=71e9bce111e9429c"; $class = "Microsoft.Office.Interop.Word.ApplicationClass"; $w = DOTNET ใหม่($แอสเซมบลี, $คลาส); $w->มองเห็น = จริง;

โปรแกรมจัดการ COM ใน PHP ต้องการการสร้างอินสแตนซ์ของคลาสภายใน "แอสเซมบลี" ในกรณีของเรา เราทำงานร่วมกับ Word หากคุณดูภาพหน้าจอแรก คุณสามารถเขียนลายเซ็นแอสเซมบลีแบบเต็มสำหรับ Word ได้:

  • “ชื่อ”, “เวอร์ชัน”, “โทเค็นคีย์สาธารณะ” - ทั้งหมดนี้นำมาจากข้อมูลที่สามารถดูได้ใน “c:\Windows\assembly“
  • “วัฒนธรรม” เป็นกลางเสมอ

คลาสที่เราต้องการอ้างอิงจะเรียกว่า "ชื่อแอสเซมบลี" + " .ApplicationClass" เสมอ

ด้วยการตั้งค่าพารามิเตอร์ทั้งสองนี้ เราจึงสามารถรับออบเจ็กต์สำหรับการทำงานกับ Word ได้

วัตถุนี้สามารถคงอยู่ในพื้นหลังได้ หรือเราสามารถกำหนดให้มันเข้าสู่โหมดการทำงานโดยการตั้งค่าแอตทริบิวต์ที่มองเห็นได้เป็น true

ขั้นตอนต่อไปคือการเปิดเอกสารที่ต้องมีการประมวลผลและเขียนอินสแตนซ์ของ “เอกสาร” ลงในตัวแปร $d

หากต้องการสร้างเนื้อหาในเอกสารตามข้อมูลในแบบฟอร์ม คุณสามารถใช้ได้หลายเส้นทาง

สิ่งที่แย่ที่สุดคือการฮาร์ดโค้ดเนื้อหาของเอกสารใน PHP แล้วส่งออกไปยังเอกสาร Word ฉันไม่แนะนำอย่างยิ่งให้ทำเช่นนี้ด้วยเหตุผลดังต่อไปนี้:

  1. คุณจะสูญเสียความยืดหยุ่น การเปลี่ยนแปลงใดๆ ในไฟล์เอาต์พุตจะต้องมีการเปลี่ยนแปลงโค้ด PHP
  2. สิ่งนี้จะทำลายการแยกการควบคุมและการมองเห็น
  3. การใช้สไตล์กับเนื้อหาเอกสาร (การจัดตำแหน่ง แบบอักษร สไตล์ ฯลฯ) ในสคริปต์จะช่วยเพิ่มจำนวนบรรทัดของโค้ดได้อย่างมาก การเปลี่ยนสไตล์โดยทางโปรแกรมนั้นยุ่งยากเกินไป

อีกทางเลือกหนึ่งคือใช้การค้นหาและแทนที่ PHP มีสิ่งอำนวยความสะดวกในตัวที่ดีสำหรับสิ่งนี้ เราสามารถสร้างเอกสาร Word โดยเราจะวางป้ายกำกับที่มีตัวคั่นพิเศษซึ่งจะถูกแทนที่ในภายหลัง ตัวอย่างเช่น เราสามารถสร้างเอกสารที่มีส่วนย่อยต่อไปนี้:

และด้วยความช่วยเหลือของ PHP เราสามารถแทนที่มันด้วยเนื้อหาของฟิลด์ "ชื่อ" ที่ได้รับจากแบบฟอร์มได้อย่างง่ายดาย

ง่ายและช่วยเราจากผลที่ไม่พึงประสงค์ทั้งหมดที่เราพบในวิธีแรก เราเพียงแค่ต้องตัดสินใจเลือกตัวคั่นที่ถูกต้อง ซึ่งในกรณีนี้เราจะใช้รูปแบบ

ฉันขอแนะนำวิธีที่สามและอาศัยความรู้ที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับ Word เราจะใช้ฟิลด์เป็นตัวยึดตำแหน่งและการใช้โค้ด PHP เราจะอัปเดตค่าในฟิลด์ด้วยค่าที่เกี่ยวข้องโดยตรง

วิธีการนี้มีความยืดหยุ่น รวดเร็ว และสอดคล้องกับแนวทางปฏิบัติที่ดีที่สุดของ Word นอกจากนี้ยังช่วยให้คุณหลีกเลี่ยงการค้นหาข้อความแบบเต็มในเอกสารซึ่งดีต่อประสิทธิภาพอีกด้วย โปรดทราบว่าโซลูชันนี้ก็มีข้อเสียเช่นกัน

Word ไม่สนับสนุนดัชนีที่มีชื่อสำหรับเขตข้อมูลตั้งแต่เริ่มต้น แม้ว่าเราจะระบุชื่อสำหรับฟิลด์ที่กำลังสร้างแล้ว แต่เรายังคงต้องใช้ตัวระบุที่เป็นตัวเลขของฟิลด์เหล่านี้ นอกจากนี้ยังอธิบายว่าทำไมเราจึงต้องใช้ฟังก์ชันแยกต่างหาก (setupfields) เพื่อจับคู่ดัชนีฟิลด์กับชื่อฟิลด์จากแบบฟอร์ม

ในบทช่วยสอนสาธิตนี้ เราจะใช้เอกสารที่มี 5 ฟิลด์ MERGEFIELD เราจะวางเอกสารเทมเพลตในตำแหน่งเดียวกับตัวจัดการสคริปต์ของเรา

โปรดทราบว่าฟิลด์วันที่พิมพ์ไม่มีฟิลด์ที่เกี่ยวข้องในแบบฟอร์ม นั่นเป็นสาเหตุที่เราเพิ่มอิลิเมนต์ printdate ว่างๆ ให้กับอาร์เรย์ $inputs หากไม่มีสิ่งนี้ สคริปต์จะยังคงเริ่มต้นและทำงาน แต่ PHP จะส่งคำเตือนว่าดัชนีวันที่พิมพ์ไม่อยู่ในอาร์เรย์ $inputs

หลังจากแทนที่ฟิลด์ด้วยค่าใหม่แล้ว เราจะพิมพ์เอกสารโดยใช้

$d->งานพิมพ์();

วิธีการ PrintOut ใช้พารามิเตอร์ทางเลือกหลายตัว และเราใช้รูปแบบที่ง่ายที่สุด การดำเนินการนี้จะพิมพ์สำเนาเอกสารหนึ่งชุดบนเครื่องพิมพ์เริ่มต้นที่แนบมากับเครื่อง Windows

คุณยังสามารถเรียก PrintPreview เพื่อดูตัวอย่างผลลัพธ์ก่อนที่จะพิมพ์ได้ ในสภาพแวดล้อมอัตโนมัติเต็มรูปแบบ แน่นอนว่าเราจะใช้วิธีการ PrintOut

คุณอาจต้องรอสักครู่ก่อนที่จะปิดแอปพลิเคชัน Word ดังนั้นจึงต้องใช้เวลาในการจัดคิวงานพิมพ์ โดยไม่ชักช้า (3) เมธอด $w->Quit จะดำเนินการทันทีและงานจะไม่อยู่ในคิว

สุดท้าย เราเรียก $w->Quit(false) ซึ่งจะปิดแอปพลิเคชัน Word ที่สคริปต์ของเราเรียก พารามิเตอร์เดียวที่ส่งผ่านไปยังเมธอดคือคำสั่งให้บันทึกไฟล์ก่อนออก เราได้ทำการเปลี่ยนแปลงในเอกสาร แต่เราไม่ต้องการบันทึกเนื่องจากเราต้องการเทมเพลตที่สะอาดสำหรับการทำงานในภายหลัง

เมื่อเรากรอกโค้ดเสร็จแล้ว เราก็สามารถโหลดหน้าแบบฟอร์มของเรา กรอกค่าบางค่า และส่งได้เลย รูปภาพด้านล่างแสดงผลลัพธ์ของสคริปต์ รวมถึงเอกสาร Word ที่อัปเดต:

ปรับปรุงความเร็วในการประมวลผลและเพิ่มเติมเกี่ยวกับ PIA เล็กน้อย

PHP เป็นภาษาที่พิมพ์ได้ไม่ดีนัก วัตถุ COM ประเภทวัตถุ ในขณะที่เขียนสคริปต์ เราไม่สามารถรับคำอธิบายของวัตถุได้ ไม่ว่าจะเป็นแอปพลิเคชัน Word เอกสาร หรือฟิลด์ เราไม่ทราบว่าออบเจ็กต์นี้มีคุณสมบัติอะไร หรือรองรับวิธีการใดบ้าง

สิ่งนี้จะทำให้ความเร็วการพัฒนาช้าลงอย่างมาก เพื่อเร่งการพัฒนา ฉันขอแนะนำให้เขียนฟังก์ชันใน C# ก่อน แล้วจึงแปลโค้ดเป็น PHP ฉันสามารถแนะนำ IDE ฟรีสำหรับการพัฒนา C# ที่เรียกว่า “#develop” ได้ คุณสามารถหามันได้ ฉันชอบ Visual Studio มากกว่าเพราะ #develop นั้นเล็กกว่า ง่ายกว่า และเร็วกว่า

การย้ายโค้ด C# ไปยัง PHP ไม่ได้น่ากลัวอย่างที่คิด ฉันจะแสดงให้คุณเห็นสองสามบรรทัดใน C#:

Word.Application w=ใหม่ Word.Application(); w.มองเห็น=จริง; เส้นทางสตริง=Application.StartupPath+"\\template.docx"; Word.Document d=w.Documents.Open(path) เป็น Word.Document; Word.Fields flds=d.Fields; int len=flds.นับ; foreach (Word.Field f ใน flds) ( f.Select(); int i=f.Index; w.Selection.TypeText("..."); )

คุณจะสังเกตได้ว่าโค้ด C# คล้ายกับโค้ด PHP ที่ผมแสดงไว้ก่อนหน้านี้มาก C# เป็นภาษาที่พิมพ์ยาก ดังนั้นคุณจะเห็นได้ในตัวอย่างนี้ว่ามีตัวดำเนินการคาสต์หลายตัว และจำเป็นต้องพิมพ์ตัวแปร

ด้วยการระบุประเภทของตัวแปร คุณสามารถเพลิดเพลินกับโค้ดที่สะอาดกว่าและการเติมข้อความอัตโนมัติ และความเร็วในการพัฒนาก็เพิ่มขึ้นอย่างมาก

อีกวิธีในการเร่งการพัฒนา PHP คือการเรียกแมโครใน Word เราดำเนินการตามลำดับการกระทำเดียวกัน จากนั้นจึงบันทึกเป็นมาโคร มาโครเขียนด้วย Visual Basic ซึ่งแปลเป็น PHP ได้ง่ายเช่นกัน

และที่สำคัญที่สุด เอกสาร Office PIA ของ Microsoft โดยเฉพาะเอกสารเนมสเปซสำหรับแอปพลิเคชัน 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 (ไฟล์ เป้าหมายเนมสเปซ) ซึ่งใช้ในพาเรนต์ 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 ระดับสาธารณะ ( public MeetingNotes() ( Participants = new List - การตัดสินใจ = รายการใหม่ - ) สตริงสาธารณะ เรื่อง ( get; set; ) สาธารณะ DateTime วันที่ ( get; set; ) สตริงสาธารณะ เลขานุการ ( get; set; ) รายการสาธารณะ ผู้เข้าร่วม (get; set; ) รายการสาธารณะ การตัดสินใจ ( get; set; ) ) ระดับสาธารณะ การตัดสินใจ ( สตริงสาธารณะ ปัญหา ( get; set; ) สตริงสาธารณะ โซลูชัน ( get; set; ) สตริงสาธารณะ รับผิดชอบ ( get; set; ) สาธารณะ DateTime ControlDate ( get; set; ) ) สาธารณะ ผู้เข้าร่วมคลาส ( ชื่อสตริงสาธารณะ ( get; set; ) )

โดยทั่วไปแล้ว ไม่มีอะไรพิเศษ ยกเว้นว่ามีการเพิ่มคุณลักษณะเพื่อควบคุมการทำให้เป็นอนุกรม 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" />

ฉันพยายามส่งจุดบกพร่องไปยังฝ่ายสนับสนุนของ Microsoft บน Connect แต่ด้วยเหตุผลบางอย่าง ฉันไม่มีสิทธิ์ส่งจุดบกพร่องของ Office และการสนทนาในฟอรัม MSDN ก็ไม่ได้ช่วยอะไรเช่นกัน

โดยทั่วไปแล้ว วิธีแก้ปัญหาที่จำเป็น ถ้าเราสร้าง XML ด้วยมือก็คงไม่มีปัญหา - เราจะทำทุกอย่างด้วยตัวเอง อย่างไรก็ตาม ในกรณีนี้ ฉันต้องการใช้ XmlSerializer มาตรฐาน ซึ่งโดยค่าเริ่มต้นจะเพิ่มเนมสเปซหลายรายการให้กับเอาต์พุต XML แม้ว่าจะไม่ได้ใช้เนมสเปซเหล่านี้ก็ตาม

เราจะระงับเอาต์พุตของเนมสเปซของเราเองใน XmlSerializer โดยสมบูรณ์ จริงอยู่ วิธีการนี้จะได้ผลก็ต่อเมื่อมันไม่ต้องการมันจริงๆ (ไม่เช่นนั้นพวกมันจะยังคงถูกเพิ่มเข้ามาและอยู่ก่อนหน้าพวกเรา)

จริงๆ แล้วโค้ดทั้งหมด (โดยมีเงื่อนไขว่าตัวแปร การประชุมหมายเหตุมีออบเจ็กต์ประเภท MeetingNotes ที่ประชากรไว้ก่อนหน้านี้):

var serializer = XmlSerializer ใหม่ (typeof (MeetingNotes));
var serializedDataStream = MemoryStream ใหม่ ();

เนมสเปซ var = XmlSerializerNamespaces ใหม่ ();
เนมสเปซ.Add(“” , “” );

serializer.Serialize (serializedDataStream, conferenceNotes, เนมสเปซ);
serializedDataStream.Seek (0, SeekOrigin.Begin);

ขั้นตอนที่ 3 ป้อน XML ที่เป็นผลลัพธ์ลงในเอกสาร Word

ที่นี่เราดำเนินการดังต่อไปนี้:

  • คัดลอกเทมเพลตและเปิดสำเนา
  • ค้นหา xml ที่กำหนดเองที่จำเป็นในนั้น (ค้นหาด้วยเนมสเปซ “โกศ: บันทึกการประชุม”)
  • แทนที่เนื้อหาขององค์ประกอบด้วย XML ของเรา

File.Copy(templateName, resultDocumentName, จริง ); การใช้ (var document = WordprocessingDocument.Open(resultDocumentName, true )) ( var xmlpart = document.MainDocumentPart.CustomXmlParts .Single(xmlPart => xmlPart.CustomXmlPropertiesPart.DataStoreItem.SchemaReferences.OfType ().ใดๆ(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 ย่อหน้า โดยแต่ละย่อหน้ามี 5 วลี ก =แรนด์(7)จะแทรก 7 ย่อหน้า ละ 3 ประโยค

วิธีที่ 2: การใช้ lorem()

หากต้องการแทรก Lorem Ipsum เก่าๆ เป็นตัวอย่าง ให้ใช้ฟังก์ชัน lorem() พิมพ์คำสั่งต่อไปนี้แล้วกด Enter:

และเราก็ได้ข้อความแพนลาตินนี้

ฟังก์ชัน lorem() ยังยอมรับอาร์กิวเมนต์เพิ่มเติม เช่น rand() ในรูปแบบของจำนวนย่อหน้าและประโยคได้อย่างง่ายดาย หากไม่มีอาร์กิวเมนต์ ฟังก์ชันจะแทรกตามค่าเริ่มต้น 3 ย่อหน้า โดยแต่ละย่อหน้ามี 3 ประโยค

วิธีที่ 3. ฟังก์ชัน rand.old()

การใช้งานคล้ายกับคำสั่งก่อนหน้า:

=rand.old()

และกด Enter

ฟังก์ชัน rand.old() ถูกปล่อยให้เข้ากันได้กับ office เก่า จนถึงปี 2003 รวมอยู่ด้วย วิธีการสมัครจะเหมือนกับสองวิธีก่อนหน้านี้ เพียงข้อความเท่านั้นที่จะประกอบด้วยวลีเดียวกัน “Eat some more of their soft French rolls and drink some tea” ใครก็ตามที่เคยทำงานกับฟอนต์เป็นครั้งคราวจะรู้จักวลีนี้

คุณสามารถส่งผ่านอาร์กิวเมนต์ได้ เช่นเดียวกับในสองวิธีแรก

เพียงเท่านี้ ข้อความก็ถูกสร้างขึ้น ตอนนี้คุณสามารถกินเฟรนช์โรลนุ่ม ๆ และดื่มชาได้มากขึ้น :)

คุณสามารถวางข้อความโดยใช้ฟังก์ชันข้างต้นได้หรือไม่?

ครั้งหนึ่งหลังจากสรุปผลการแข่งขันโอลิมปิกแล้ว เมื่อผู้เข้าร่วมต้องส่งจดหมายแจ้งผลการสอบวิชาที่ผ่าน (หรือสอบตก) ข้าพเจ้าสังเกตเห็นว่ามีเด็กผู้หญิงคนหนึ่งกำลังนั่งใช้มือสอบผลสอบอยู่ ชื่อและข้อมูลอื่นๆ ลงในเทมเพลตจดหมาย ด้านหน้าของเธอมีกระดาษหลายแผ่นที่พิมพ์จาก Excel พร้อมชื่อและเกรด คัดลอก-วาง, Ctrl+C - Ctrl+V การแปลชื่อเต็มจากนามนามเป็นกรณีสัมพันธการก และงานได้เสร็จสิ้นไปแล้วครึ่งหนึ่งของข้อมูลสามแผ่นแรก คุณคิดว่าเธอจะนั่งคัดลอกข้อมูลและตรวจสอบผลลัพธ์ได้นานแค่ไหน ฉันคิดว่ามันคงจะใช้เวลานานและก็จะมีข้อผิดพลาดอยู่บ้าง แต่แล้วเธอก็ยังต้องลงนามในซองไปรษณีย์... ฉันรู้สึกเสียใจสำหรับเวลาของเธอ และในเวลาเพียงไม่กี่นาที ฉันก็แสดงให้เห็นว่ากระบวนการนี้สามารถทำให้เป็นอัตโนมัติได้อย่างไรโดยใช้วิธีการง่ายๆ หลังจากการทัศนศึกษาเล็กน้อย งานของเธอก็เสร็จภายใน 20 นาที

ในบทนี้ ฉันจะแสดงให้คุณเห็นว่าคุณสามารถสร้างเอกสาร (จดหมาย บัตรเชิญ) โดยใช้เวลาขั้นต่ำกับเอกสารได้อย่างรวดเร็วได้อย่างไร ใน รุ่นที่แตกต่างกันกระบวนการที่อธิบายนี้เรียกว่าแตกต่างกันในภาษาต่างๆ ดังนั้นในภาษารัสเซียจึงเรียกว่า "ผสาน" และในภาษาอังกฤษเรียกว่า "ผสาน"

ฉันหวังว่าจดหมายลูกโซ่จะมาจาก กองทุนบำเหน็จบำนาญการแจ้งภาษีก็ถูกสร้างขึ้นในลักษณะเดียวกัน :)

เครื่องมือ

ในการสร้างเอกสารเราจำเป็นต้องมี 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 ธรรมดา คุณสามารถเปิด Merge Wizard ได้ทันที ซึ่งจะแนะนำคุณตลอดทุกขั้นตอนของกระบวนการ ขั้นตอนต่อไปคือการเลือกผู้รับซึ่งก็คือฐานข้อมูล ที่นี่คุณสามารถเลือกฐานข้อมูลสำเร็จรูป (เช่น ตาราง MS Excel ที่สร้างในขั้นตอนก่อนหน้า) หรือสร้างรายการใหม่ หลังจากเลือกรายการแล้ว ปุ่ม "แทรกฟิลด์ผสาน", "เปลี่ยนรายชื่อผู้รับ" ฯลฯ จะใช้งานได้ ผ่านกล่องโต้ตอบ "เปลี่ยนรายชื่อผู้รับ" ซึ่งเปิดขึ้นพร้อมกับปุ่มที่เกี่ยวข้อง คุณสามารถเลือกจากรายการทั้งหมด เฉพาะบันทึกที่จำเป็นสำหรับการรวมเท่านั้น







เมื่อแทรกฟิลด์ ฉันพบว่าสะดวกที่จะเน้นฟิลด์ทั้งหมดเป็นสีเทาโดยคลิกที่ปุ่ม "ไฮไลต์ผสานฟิลด์" มิฉะนั้น หากมีฟิลด์ดังกล่าวจำนวนมาก ฟิลด์เหล่านั้นอาจหายไปในข้อความได้

เทมเพลตก็พร้อมแล้ว

การสร้างตัวอักษร

ขั้นตอนสุดท้ายคือการสร้างตัวอักษร ใน OpenOffice ให้ทำสิ่งนี้ในเมนู "เครื่องมือ" เลือก "Mail Merge Wizard..." และทำตามขั้นตอนที่แนะนำทั้งหมดสำหรับการรวมเทมเพลตของเราเข้ากับฐานข้อมูล





ในกล่องโต้ตอบ เราจะเห็นว่าจาก 8 ประเด็นที่เสนอ เราไม่จำเป็นต้องดำเนินการบางประเด็น ดังนั้นเราจึงสร้างเอกสารแล้วและเราไม่จำเป็นต้องแก้ไข และเราได้แทรกบล็อกที่อยู่แล้วด้วย แต่มาทำสิ่งต่าง ๆ ตามลำดับ

ขั้นแรก เลือกว่าเรากำลังสร้างตัวอักษรตามเอกสารปัจจุบัน และคลิก "ถัดไป" ที่ด้านล่างของหน้าต่าง ประเด็นที่สองคือการเลือกว่าเราจะมีจดหมายฉบับนี้หรืออีเมล หากต้องการบันทึกจดหมายลงในไฟล์ คุณควรเลือกจดหมายฉบับแรก คลิก "ถัดไป" ประเด็นที่สามขอให้เราสร้างบล็อกที่อยู่ แต่เนื่องจากเราสร้างขึ้นด้วยตนเอง เราจึงยกเลิกการเลือกช่องทั้งหมดและไปยังขั้นตอนถัดไป ที่นี่เราถูกขอให้แทรกคำขอ แต่เรามีอยู่แล้ว ดังนั้นเราจึงคลิก "ถัดไป" จุดที่หกคือการแก้ไขเอกสาร ดูเอกสารที่มีการแทรกฟิลด์จากฐานข้อมูล และหากจำเป็น ให้แยกบางฟิลด์ออก



ขั้นตอนที่ 7 ขอให้คุณแก้ไขแต่ละไฟล์ที่สร้างขึ้นจากการเชื่อมต่อเทมเพลตกับฐานข้อมูล และสุดท้ายในขั้นตอนที่ 8 สุดท้าย คุณสามารถเลือกได้ว่าจะทำอย่างไรกับเอกสารที่ได้รับ คุณสามารถบันทึก พิมพ์ หรือส่งทางอีเมล ในกรณีนี้ คุณสามารถบันทึกเอกสารทั้งหมดเป็นไฟล์เดียว หรือแยกแต่ละเอกสารแยกกันได้

ใน MS Word กระบวนการผสานจะสิ้นสุดด้วยการคลิกปุ่มค้นหาและผสาน



จากเมนูแบบเลื่อนลงจะเห็นได้ชัดว่าสามารถพิมพ์และส่งจดหมายทั้งหมดทางอีเมลได้ แต่ไม่ชัดเจนว่าจดหมายทั้งหมดสามารถบันทึกลงในไฟล์ได้ หากต้องการบันทึกคุณต้องเลือกรายการแรก - "เปลี่ยนเอกสารแต่ละรายการ" ซึ่งจะเป็นการเปิดเอกสารใหม่ ซึ่งตัวอักษรใหม่แต่ละตัวจะอยู่ในหน้าใหม่และไฟล์นี้สามารถบันทึกได้ที่นี่

บทสรุป

ในบทเรียนนี้ คุณได้เรียนรู้วิธีใช้เครื่องมือผสานเพื่อสร้างเอกสารตามเทมเพลต มาเขียนลำดับการกระทำโดยย่อ:

  1. จำเป็นต้องสร้างฐานข้อมูลในตัวประมวลผลตารางซึ่งข้อมูลจะถูกนำไปใช้ในการกรอกข้อมูลในฟิลด์
  2. คุณต้องสร้างเทมเพลตจดหมาย
  3. ดำเนินการผสานและบันทึกผลลัพธ์

นามสกุลในคอลัมน์ บีและอาชีพในคอลัมน์ .

2. สร้างเอกสารคำ (.doc หรือ .docx)


(ก), (ข)และ (ค).

(ก), (ข)และ (ค) (ก)- ชื่อ, (ข)- นามสกุล, (ค)- วิชาชีพ.

การตั้งค่าโปรแกรม

3. เลือกเส้นทางสำหรับไฟล์และโฟลเดอร์


เลือก

4. ระบุแผ่นงานและแถวของข้อมูลที่ต้องการ


เอกสารข้อมูลไฟล์ Excel

แถวข้อมูลไฟล์ Excel เอกสารข้อมูลไฟล์ Excel

1 .

หากคุณต้องการให้ชีตและ/หรือแถวทั้งหมดของไฟล์ Excel ของคุณพร้อมข้อมูลมีส่วนร่วมในการก่อตัวของเอกสาร ให้คลิกที่ปุ่มที่เกี่ยวข้องทางด้านขวาพร้อมข้อความที่จารึกไว้ ตัวเลข(คำจารึกจะเปลี่ยนเป็น ทั้งหมด).

5. ตั้งค่าเทมเพลตสำหรับการตั้งชื่อไฟล์คำใหม่


กำหนดรูปแบบการตั้งชื่อสำหรับไฟล์คำใหม่:

เทมเพลตชื่อไฟล์คำใหม่- นี่คือเทมเพลตสำหรับชื่อของเอกสารใหม่ (ไฟล์คำ) ที่สร้างโดยโปรแกรม รูปแบบชื่อประกอบด้วยชื่อคอลัมน์ของไฟล์ Excel ล้อมรอบด้วยเครื่องหมายปีกกา: (ก)และ (ข)- เมื่อสร้างเอกสารใหม่โปรแกรมจะเข้ามาแทนที่ทุกอย่าง (ก)และ (ข)ค่าเซลล์ที่เกี่ยวข้องจากไฟล์ Excel - นี่จะเป็นชื่อของเอกสารใหม่ (ไฟล์คำ)

คุณสามารถตั้งค่าอักขระการจัดเฟรมของคุณได้บนแท็บ การตั้งค่าโปรแกรม

6. คลิก "สร้าง"


คลิกปุ่ม สร้างและความคืบหน้าจะปรากฏบนหน้าจอ เอกสารจำนวนมาก (ไฟล์เวิร์ด) จะถูกสร้างขึ้นตามจำนวนบรรทัดในไฟล์ Excel ที่เกี่ยวข้องในการสร้าง

7. ทุกอย่าง


เอกสารทั้งหมด (ไฟล์เวิร์ด) ถูกสร้างขึ้นและอยู่ในโฟลเดอร์ที่ระบุ โฟลเดอร์สำหรับบันทึกไฟล์คำใหม่- ทั้งหมด:)

เอ็กวอก- เครื่องมือสร้างรายงานจาก Excel เป็น Word โดยใช้เทมเพลต

โปรแกรมสร้างไฟล์ Word ฟรีโดยใช้เทมเพลต (ไฟล์ Word) ตามข้อมูลไฟล์ Excel

ทำงานบน Mac OS, Windows และ Linux

ช่วยให้คุณสามารถระบุชื่อของไฟล์คำที่สร้างขึ้นใหม่

ช่วยให้คุณระบุแผ่นงานและแถวของข้อมูลที่ต้องการ

ช่วยให้คุณสามารถระบุอักขระโดยรอบสำหรับชื่อคอลัมน์ Excel

ง่ายต่อการใช้

จัดเก็บข้อมูลของคุณในรูปแบบ Excel (.xls และ .xlsx) และสร้างไฟล์ Word (.doc และ .docx) ได้ในไม่กี่คลิก :)


มันทำงานอย่างไร?

ตรวจสอบไฟล์ Excel ของคุณ


ในตัวอย่างนี้ ไฟล์ Excel มีข้อมูลเกี่ยวกับไคลเอนต์ แต่ละบรรทัดสอดคล้องกับลูกค้าเฉพาะราย ชื่อจะถูกจัดเรียงเป็นคอลัมน์ นามสกุลในคอลัมน์ บีและอาชีพในคอลัมน์ .

คลิกเพื่อดู

สร้างเอกสารคำ (.doc หรือ .docx)


คลิกเพื่อดู

สร้าง “เทมเพลต” (ไฟล์เวิร์ด) สำหรับสร้างเอกสารใหม่ (ไฟล์เวิร์ด) ข้อความ "เทมเพลต" ที่นี่ประกอบด้วยชื่อคอลัมน์ของไฟล์ Excel ซึ่งล้อมรอบด้วยเครื่องหมายปีกกา: (ก), (ข)และ (ค).

โปรแกรมจะสร้างเอกสารใหม่ตาม "เทมเพลต" แทนที่ทั้งหมด (ก), (ข)และ (ค)ค่าเซลล์ที่สอดคล้องกันจากไฟล์ Excel: (ก)- ชื่อ, (ข)- นามสกุล, (ค)- วิชาชีพ.

คุณยังสามารถตั้งค่าอักขระการจัดเฟรมบนแท็บได้อีกด้วย การตั้งค่าโปรแกรม

เลือกเส้นทางสำหรับไฟล์และโฟลเดอร์


เลือกเส้นทางสำหรับไฟล์และโฟลเดอร์ (ปุ่มที่มีป้ายกำกับ เลือก- ในโปรแกรมคุณระบุเส้นทางต่อไปนี้:

ไฟล์ Excel พร้อมข้อมูล (*.xls, *.xlsx)- นี่คือเส้นทางไปยังไฟล์ Excel ของคุณพร้อมข้อมูล (ข้อมูลลูกค้า)

ไฟล์เทมเพลต Word (*.doc, *.docx)- นี่คือเส้นทางไปยัง "เทมเพลต" ของคุณ (ไฟล์คำที่สร้างในขั้นตอนก่อนหน้า)

โฟลเดอร์สำหรับบันทึกไฟล์คำใหม่- นี่คือเส้นทางไปยังโฟลเดอร์ที่โปรแกรมจะบันทึกเอกสารที่สร้างขึ้นใหม่

คลิกเพื่อดู

ระบุแผ่นงานและแถวของข้อมูลที่ต้องการ


คลิกเพื่อดู

ระบุจำนวนชีตและแถวของไฟล์ Excel ของคุณด้วยข้อมูล (ข้อมูลลูกค้า) ที่คุณต้องการสร้างเอกสาร:

เอกสารข้อมูลไฟล์ Excel- จำนวนชีตของไฟล์ Excel ของคุณที่จะเข้าร่วมในการสร้างเอกสารใหม่

แถวข้อมูลไฟล์ Excel- หมายเลขบรรทัดของแผ่นงาน (แผ่นที่ระบุใน เอกสารข้อมูลไฟล์ Excel) ของไฟล์ Excel ของคุณซึ่งจะมีส่วนร่วมในการสร้างเอกสารใหม่ ตามข้อมูลของแต่ละบรรทัด จะมีการสร้างเอกสารแยกต่างหาก (ไฟล์เวิร์ด)

การนับจำนวนแผ่นงานและบรรทัดในโปรแกรมเริ่มต้นด้วย 1 .