ในบทความนี้ ฉันจะสาธิตวิธีค้นหาและแทนที่ข้อความในเอกสาร Word (DOC/DOCX) โดยทางโปรแกรมโดยใช้ Java คำแนะนำทีละขั้นตอนและตัวอย่างโค้ดจะครอบคลุมสถานการณ์ต่างๆ ของการค้นหาและแทนที่ข้อความในเอกสาร Word
MS Word มีวิธีง่ายๆ ในการค้นหาและแทนที่ข้อความในเอกสาร หนึ่งในกรณีการใช้งานยอดนิยมของการค้นหาและแทนที่ข้อความอาจเป็นการลบหรือแทนที่ข้อมูลที่ละเอียดอ่อนภายในเอกสารก่อนที่จะแบ่งปันระหว่างเอนทิตีต่างๆ อย่างไรก็ตาม กระบวนการด้วยตนเองอาจทำให้คุณต้องติดตั้ง MS Word และอัปเดตเอกสารทุกฉบับแยกกัน ในสถานการณ์เช่นนี้ จะเป็นประโยชน์และประหยัดเวลา โดยเฉพาะอย่างยิ่งเมื่อคุณรวมคุณสมบัติการค้นหาและแทนที่ภายในเดสก์ท็อปหรือเว็บแอปพลิเคชันของคุณ ดังนั้นเรามาเริ่มดูวิธีการค้นหาและแทนที่ข้อความในเอกสาร Word โดยใช้ Java ในสถานการณ์ต่างๆ
- ค้นหาและแทนที่ข้อความใน Word DOC/DOCX โดยใช้ Java
- แทนที่คำที่คล้ายกันตามรูปแบบ Regex ใน Word DOC/DOCX
- ค้นหาและแทนที่ข้อความในส่วนหัว/ส่วนท้ายของเอกสาร Word
- ค้นหาและแทนที่ข้อความด้วยอักขระ Meta ใน Word DOC/DOCX
Java API เพื่อค้นหาและแทนที่ข้อความในเอกสาร Word
ในการใช้คุณลักษณะการค้นหาและแทนที่ เราจะใช้ Aspose.Words for Java ซึ่งเป็น API การประมวลผล Word ที่ทรงพลัง มีคุณลักษณะหลากหลาย และใช้งานง่ายสำหรับแพลตฟอร์ม Java คุณสามารถ ดาวน์โหลด JAR หรือติดตั้งภายในแอปพลิเคชันที่ใช้ Maven โดยใช้การกำหนดค่าต่อไปนี้
พื้นที่เก็บข้อมูล:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
การพึ่งพา:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>20.5</version>
<classifier>jdk17</classifier>
</dependency>
ค้นหาและแทนที่ข้อความในเอกสาร Word (DOC/DOCX) โดยใช้ Java
เริ่มต้นด้วยการระบุสถานการณ์ค้นหาและแทนที่อย่างง่ายซึ่งเราจะพบคำว่า “เศร้า” ในเอกสาร Word ที่ป้อนเข้า ต่อไปนี้เป็นขั้นตอนในการดำเนินการนี้
- สร้างอินสแตนซ์ของคลาส Document และส่งต่อไปยังพาธของเอกสาร Word
- ค้นหาและแทนที่ข้อความโดยใช้เมธอด Document.getRange.replace(String, String, FindReplaceOptions)
- บันทึกเอกสารโดยใช้เมธอด Document.save(String)
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการค้นหาและแทนที่ข้อความในเอกสาร Word DOCX โดยใช้ Java
// โหลดเอกสาร Word DOCX
Document doc = new Document("document.docx");
// ค้นหาและแทนที่ข้อความในเอกสาร
doc.getRange().replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.FORWARD));
// บันทึกเอกสาร Word
doc.save("Find-And-Replace-Text.docx");
ด้านล่างนี้เป็นเอกสาร Word ที่เราใช้ในบทความนี้
ต่อไปนี้เป็นผลลัพธ์หลังจากค้นหาและแทนที่คำว่า “เศร้า”
ค้นหาและแทนที่คำที่คล้ายกันใน Word DOC/DOCX โดยใช้ Java
คุณยังสามารถปรับแต่ง API เพื่อค้นหาและแทนที่ข้อความตามความคล้ายคลึงกัน ตัวอย่างเช่น คำว่า “sad”, “mad” และ “bad” จะอยู่ในรูปแบบเดียวกันที่ลงท้ายด้วย “ad” รหัสอีเมลเป็นอีกตัวอย่างหนึ่งของข้อความดังกล่าว ในกรณีเช่นนี้ คุณสามารถกำหนดรูปแบบ regex เพื่อค้นหาและแทนที่ข้อความทั้งหมดที่มีรูปแบบเฉพาะ ต่อไปนี้เป็นขั้นตอนในการบรรลุเป้าหมายนี้
- สร้างอินสแตนซ์ของคลาส Document และส่งต่อไปยังพาธของเอกสาร Word
- กำหนดรูปแบบ regex โดยใช้วิธี Pattern.compile() และส่งต่อไปยังวิธี Document.getRange().replace(รูปแบบรูปแบบ, การแทนที่สตริง, ตัวเลือก FindReplaceOptions)
- บันทึกเอกสารที่อัปเดตโดยใช้เมธอด Document.save(String)
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการค้นหาและแทนที่คำที่คล้ายกันตามรูปแบบเฉพาะโดยใช้ Java
// โหลดเอกสาร Word DOCX
Document doc = new Document("document.docx");
// ค้นหาและแทนที่คำที่คล้ายกันในเอกสาร
FindReplaceOptions options = new FindReplaceOptions();
doc.getRange().replace(Pattern.compile("[B|S|M]ad"), "[replaced]", options);
// บันทึกเอกสาร Word
doc.save("Find-And-Replace-Text.docx");
ต่อไปนี้เป็นภาพหน้าจอของเอกสาร Word หลังจากอัปเดตคำที่คล้ายกัน
แทนที่ข้อความในส่วนหัว/ส่วนท้ายของเอกสาร Word
Aspose.Words ยังช่วยให้คุณค้นหาและแทนที่ข้อความเฉพาะในส่วนหัว/ส่วนท้ายของเอกสาร Word ต่อไปนี้เป็นขั้นตอนในการดำเนินการนี้
- สร้างอินสแตนซ์ของคลาส Document และส่งต่อไปยังพาธของเอกสาร Word
- รับ HeaderFooterCollection ของเอกสารโดยใช้เมธอด Document.getFirstSection().getHeadersFooters()
- ดึงส่วนหัว/ส่วนท้ายเฉพาะในวัตถุ HeaderFooter
- ใช้เมธอด HeaderFooter.getRange().replace() เพื่อค้นหาและแทนที่ข้อความ
- บันทึกเอกสาร Word ที่อัปเดต
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการค้นหาและแทนที่ข้อความในส่วนหัว/ส่วนท้ายของเอกสาร Word โดยใช้ Java
// โหลดเอกสาร Word DOCX
Document doc = new Document("document.docx");
// เข้าถึงคอลเลกชันส่วนท้ายของส่วนหัว
HeaderFooterCollection headersFooters = doc.getFirstSection().getHeadersFooters();
HeaderFooter footer = headersFooters.get(HeaderFooterType.FOOTER_PRIMARY);
// ตั้งค่าตัวเลือกการค้นหาและแทนที่
FindReplaceOptions options = new FindReplaceOptions();
options.setMatchCase(false);
options.setFindWholeWordsOnly(false);
footer.getRange().replace("This is footer of the document.", "Copyright (C) 2020 by Aspose Pty Ltd.", options);
// บันทึกเอกสาร Word
doc.save("Find-And-Replace-Text.docx");
ภาพหน้าจอต่อไปนี้แสดงข้อความที่อัปเดตในส่วนท้ายของเอกสาร Word
ค้นหาและแทนที่ข้อความด้วยอักขระ Meta ใน Word DOCX โดยใช้ Java
อาจมีกรณีที่คุณต้องการค้นหาและแทนที่วลีที่แบ่งออกเป็นหลายบรรทัดหรือย่อหน้า ในกรณีเช่นนี้ คุณจะต้องดูแลย่อหน้า ส่วน หรือตัวแบ่งบรรทัด Aspose.Words for Java ช่วยให้คุณจัดการกับกรณีดังกล่าวได้ค่อนข้างง่าย ต่อไปนี้เป็นอักขระเมตาที่คุณสามารถใช้สำหรับช่วงพักต่างๆ:
- &p: ตัวแบ่งย่อหน้า
- &b: ตัวแบ่งส่วน
- &m: ตัวแบ่งหน้า
- &l: ตัวแบ่งบรรทัด
ตัวอย่างโค้ดต่อไปนี้สาธิตวิธีค้นหาและแทนที่ข้อความด้วยตัวแบ่งย่อหน้าในเอกสาร Word
// โหลดเอกสาร Word DOCX
Document doc = new Document("document.docx");
// ตั้งค่าตัวเลือก
FindReplaceOptions options = new FindReplaceOptions();
// ปิดใช้งานตัวพิมพ์และตัวพิมพ์ที่ตรงกันและค้นหาทั้งคำเท่านั้น
options.setMatchCase(false);
options.setFindWholeWordsOnly(false);
// แทนที่ข้อความด้วยการแบ่งย่อหน้า
doc.getRange().replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// บันทึกเอกสาร Word
doc.save("Find-And-Replace-Text.docx");
ต่อไปนี้เป็นภาพหน้าจอของเอกสาร Word ที่ส่งออก
บทสรุป
ในบทความนี้ คุณได้เห็นวิธีค้นหาและแทนที่ข้อความในเอกสาร Word DOC/DOCX โดยทางโปรแกรมโดยใช้ Java สถานการณ์ต่างๆ ของการค้นหาและแทนที่ข้อความในไฟล์ MS Word DOCX ได้รับการแก้ไขแล้วด้วยความช่วยเหลือของตัวอย่างโค้ด คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Aspose.Words for Java ได้จาก เอกสารประกอบ