ค้นหาและแทนที่ใน Word

ในบล็อกโพสต์ของวันนี้ เราจะสำรวจวิธีค้นหาและแทนที่ข้อความในเอกสาร Word (DOC/DOCX) โดยใช้ Java เราจะครอบคลุมแง่มุมต่างๆ ของงานนี้ รวมถึงการทำงานกับ API การเขียนข้อความ Java Word การค้นหาและการแทนที่คำหรือวลี การค้นหาแบบคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ และแม้แต่การแทนที่ข้อความโดยใช้นิพจน์ทั่วไป (RegEx) สำหรับการแทนที่ขั้นสูง

บทความนี้จะกล่าวถึงประเด็นต่อไปนี้:

ไลบรารีการโต้ตอบข้อความ Java Word - การติดตั้ง

ในการเริ่มต้น เราต้องตั้งค่าไลบรารี Conholdate.Total for Java ขั้นตอนการติดตั้งไลบรารี Java นี้ง่ายมาก ผู้ใช้ Maven สามารถเพิ่มการกำหนดค่าต่อไปนี้ในไฟล์ pom.xml

<repository>
	<id>ConholdateJavaAPI</id>
	<name>Conholdate Java API</name>
	<url>https://releases.conholdate.com/java/repo</url>
</repository>        
<dependency>
	<groupId>com.conholdate</groupId>
	<artifactId>conholdate-total</artifactId>
	<version>23.6</version>
	<type>pom</type>
</dependency>

จากนั้นรันคำสั่งต่อไปนี้

mvn clean    
mvn install -U

หากต้องการกำหนดค่าเฟรมเวิร์ก Java อื่นๆ โปรดไปที่ releases.conholdate.com

รับใบอนุญาตฟรี

คุณสามารถดาวน์โหลด [ใบอนุญาตชั่วคราวฟรี] เพื่อทดสอบไลบรารีโดยไม่มีข้อจำกัดในการประเมิน

ถามคำถาม

คุณสามารถโพสต์คำถามหรือความคิดเห็นของคุณเกี่ยวกับไลบรารีตัวลบเพจ Java PDF ได้ใน [ฟอรั่ม] นี้ 10

การใช้ไลบรารีการเขียนข้อความ Java Word

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

เราจะใช้เอกสาร Word ตัวอย่างดังที่แสดงในภาพหน้าจอต่อไปนี้:

ลบหนึ่งหน้าออกจาก pdf

ค้นหาและแทนที่คำหรือวลี: ขั้นตอนในการเขียนโปรแกรม Java

ต่อไปนี้เป็นขั้นตอนที่อธิบายวิธีการค้นหาและแทนที่อินสแตนซ์ของคำ/วลีในเอกสาร Word

  1. ขั้นแรก โหลดไฟล์ DOC/DOCX โดยใช้คลาส Redactor
  2. จากนั้น ค้นหาวลีหรือคำเป้าหมายโดยใช้คลาส ExactPhraseRedaction และ ReplacementOptions
  3. จากนั้น ปรับใช้การแก้ไขโดยใช้วิธี apply ของ Redactor
  4. หลังจากนั้น ให้บันทึกไฟล์ที่แก้ไขไปยังตำแหน่งอื่นโดยใช้สตรีมเอาต์พุต
  5. สุดท้าย ให้บันทึกการเปลี่ยนแปลงการแก้ไขโดยใช้วิธี บันทึก

โค้ด Java ต่อไปนี้ค้นหาคำว่า “John Doe” ในเอกสาร Word ด้านบน และแทนที่อินสแตนซ์ทั้งหมดของ “John Doe” ด้วยคำว่า “[censored]”

// ค้นหาวลีที่ตรงทั้งหมดและแทนที่ด้วยข้อความอื่นโดยใช้ Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// หากคุณต้องการบันทึกไฟล์ที่ถูกแก้ไขในตำแหน่งอื่นด้วยชื่อที่แตกต่างกัน
FileOutputStream stream = new FileOutputStream("path/exactPhrase.docx");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);

ผลลัพธ์ของโค้ดจะเป็นดังนี้

ค้นหาและแทนที่ Word

ค้นหาและแทนที่ข้อความที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

ตัวอักษรที่ตรงกันทุกประการของคำดูเหมือนจะมีความสำคัญสำหรับคุณ และคุณต้องการแทนที่ด้วยคำที่เกี่ยวข้องกับการค้นหาแบบคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ของคุณเท่านั้น รหัสต่อไปนี้จะแทนที่การเกิดขึ้นของการจับคู่ตัวพิมพ์ทุกประการของคำว่า “John Doe” ในภาษา Java

// ค้นหาวลีที่ตรงกันทุกประการ (คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) และแทนที่ด้วยข้อความอื่นโดยใช้ Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();

ผลลัพธ์ของโค้ดจะเป็นดังนี้

ค้นหาและแทนที่ข้อความที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

ค้นหาและแทนที่โดยใช้นิพจน์ทั่วไป (RegEx) ใน Java

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

  1. โหลดเอกสารด้วยคลาส Redactor
  2. สร้างรูปแบบ RegEx โดยใช้ RegexRedaction
  3. ระบุข้อความแทนที่ด้วย ReplacementOptions
  4. ใช้การแก้ไขโดยใช้วิธี apply
  5. บันทึกเอกสารที่แก้ไขโดยใช้วิธี บันทึก

โค้ด Java ต่อไปนี้แสดงวิธีการค้นหาคำในเอกสาร MS Word โดยใช้ RegEx และแทนที่ด้วยข้อความอื่น

// ค้นหาข้อความโดยใช้นิพจน์ทั่วไปและแทนที่ด้วยข้อความอื่นโดยใช้ Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
redactor.save();

ผลลัพธ์ของโค้ดจะเป็นดังนี้

regex ค้นหาและแทนที่

บทสรุป

ในตอนท้ายของโพสต์บนบล็อกนี้ คุณจะมีความเข้าใจที่ครอบคลุมเกี่ยวกับวิธีการค้นหาและแทนที่ข้อความในเอกสาร Word โดยใช้ Java ด้วย Conholdate.Total สำหรับไลบรารี Java คุณจะได้รับความรู้และเครื่องมือเพื่อทำให้งานนี้ทำงานอัตโนมัติได้อย่างมีประสิทธิภาพ ปรับปรุงประสิทธิภาพการทำงาน และลดความซับซ้อนของเวิร์กโฟลว์การจัดการเอกสาร เรามาเริ่มต้นและใช้ประโยชน์จาก Conholdate.Total สำหรับ Java กันดีกว่า เพื่อปรับปรุงการประมวลผลเอกสาร Word บน Java ของคุณ!

สุดท้ายนี้ โปรดไปที่ conholdate.com เพื่อรับการอัปเดตเป็นประจำ

ดูสิ่งนี้ด้วย