รูปแบบไฟล์ประมวลผลคำที่พบมากที่สุดและใช้กันอย่างแพร่หลายคือ DOC, DOCX และ ODT Microsoft Word และ OpenOffice Writer ที่มีชื่อเสียงสนับสนุนรูปแบบเหล่านี้ และโดยปกติแล้วเราจะใช้รูปแบบเหล่านี้ในการร่างเอกสาร ดังนั้น ในฐานะนักพัฒนา เราจำเป็นต้องแก้ไขเอกสาร Word ในแอปพลิเคชันของเราโดยทางโปรแกรมอย่างกว้างขวาง ในบทความนี้ เราจะพูดถึงวิธีการแก้ไขเอกสาร Word ใน C# โดยใช้ .NET API ในการแก้ไขเอกสาร
ต่อไปนี้เป็นหัวข้อที่กล่าวถึงโดยย่อในบทความนี้:
.NET API สำหรับการแก้ไขเอกสาร Word และการทำงานอัตโนมัติ
ในบทความนี้ ฉันจะใช้ GroupDocs.Editor for .NET ในตัวอย่าง C# ซึ่งเป็น API การแก้ไขเอกสารและอนุญาตให้นักพัฒนาโหลด แก้ไข และบันทึกรูปแบบเอกสารต่างๆ โดยใช้ WYSIWYG HTML editors นอกเหนือจากรูปแบบเอกสารประมวลผลคำแล้ว API ยังรองรับการแก้ไขสเปรดชีต งานนำเสนอ รูปแบบ HTML, XML, TXT, DSV, TSV และ CSV
ดาวน์โหลดโปรแกรมติดตั้ง DLLs หรือ MSI จาก ส่วนการดาวน์โหลด หรือติดตั้ง API ในแอปพลิเคชัน .NET ของคุณผ่าน NuGet
PM> Install-Package GroupDocs.Editor
แก้ไขเอกสาร Word ใน C#
หลังจากตั้งค่า API แล้ว คุณก็สามารถแก้ไขเอกสาร Word ได้อย่างรวดเร็ว ขั้นตอนต่อไปนี้จะช่วยให้คุณแก้ไขเอกสารประมวลผลคำได้
- โหลดเอกสาร Word
- แก้ไขตามตัวเลือก
- บันทึกเอกสารที่แก้ไข
โหลดเอกสาร Word
ประการแรก โหลดเอกสารโดยระบุเส้นทางเอกสารและรหัสผ่าน หากเอกสารได้รับการป้องกัน
using (FileStream fs = File.OpenRead(inputFilePath))
{
Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.Password = "password-if-any";
}
แก้ไขเอกสาร Word
หลังจากโหลดแล้ว คุณสามารถแก้ไขเอกสารที่โหลดได้ตามความต้องการของคุณ ที่นี่ฉันกำลังแทนที่คำว่า “เอกสาร” ที่เกิดขึ้นทั้งหมดด้วย “เอกสารที่แก้ไข” ในเอกสาร Word โดยใช้รหัส C# ด้านล่าง
using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))
{
Options.WordProcessingEditOptions editOptions = new WordProcessingEditOptions();
editOptions.FontExtraction = FontExtractionOptions.ExtractEmbeddedWithoutSystem;
editOptions.EnableLanguageInformation = true;
editOptions.EnablePagination = true;
using (EditableDocument beforeEdit = editor.Edit(editOptions))
{
string originalContent = beforeEdit.GetContent();
List<IHtmlResource> allResources = beforeEdit.AllResources;
string editedContent = originalContent.Replace("document", "edited document");
}
}
บันทึกเอกสาร Word ที่แก้ไขด้วยตัวเลือก
สุดท้าย ขณะบันทึกเนื้อหาเอกสารที่แก้ไข คุณสามารถตั้งค่าตัวเลือกเพิ่มเติมได้ ตัวเลือกเหล่านี้รวมถึง; การแบ่งหน้า ตั้งรหัสผ่าน ตำแหน่งที่ตั้ง การป้องกัน หรือการตั้งค่าการเพิ่มประสิทธิภาพหน่วยความจำ ฉันตั้งค่าตัวเลือกข้างต้นในรหัสที่กล่าวถึงด้านล่าง และบันทึกเอกสารที่แก้ไขเป็นไฟล์ DOCX ที่ป้องกันด้วยรหัสผ่านและอ่านอย่างเดียว
using (EditableDocument afterEdit = EditableDocument.FromMarkup(editedContent, allResources))
{
Options.WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(WordProcessingFormats.Docx);
saveOptions.EnablePagination = true;
saveOptions.Locale = System.Globalization.CultureInfo.GetCultureInfo("en-US");
saveOptions.OptimizeMemoryUsage = true;
saveOptions.Password = "password";
saveOptions.Protection = new WordProcessingProtection(WordProcessingProtectionType.ReadOnly, "write\_password");
using (FileStream outputStream = File.Create("filepath/editedDocument.docx"))
{
editor.Save(afterEdit, outputStream, saveOptions);
}
}
รหัสที่สมบูรณ์
เพื่อความสะดวกของคุณ ฉันกำลังแสดงตัวอย่าง C# ฉบับสมบูรณ์ที่อธิบายไว้ข้างต้น และจะแก้ไขเอกสาร Word แล้วบันทึกในรูปแบบ DOCX
// แก้ไขเอกสาร Word ใน C# โดยใช้การแก้ไขเอกสาร GroupDocs และ API การทำงานอัตโนมัติ
using (FileStream fs = File.OpenRead("filepath/document.docx"))
{ // Load Document
Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.Password = "password-if-any";
// แก้ไขเอกสาร
using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))
{
Options.WordProcessingEditOptions editOptions = new WordProcessingEditOptions();
editOptions.FontExtraction = FontExtractionOptions.ExtractEmbeddedWithoutSystem;
editOptions.EnableLanguageInformation = true;
editOptions.EnablePagination = true;
using (EditableDocument beforeEdit = editor.Edit(editOptions))
{
string originalContent = beforeEdit.GetContent();
List<IHtmlResource> allResources = beforeEdit.AllResources;
string editedContent = originalContent.Replace("document", "edited document");
// บันทึกเอกสาร
using (EditableDocument afterEdit = EditableDocument.FromMarkup(editedContent, allResources))
{
WordProcessingFormats docxFormat = WordProcessingFormats.Docx;
Options.WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(docxFormat);
saveOptions.EnablePagination = true;
saveOptions.Locale = System.Globalization.CultureInfo.GetCultureInfo("en-US");
saveOptions.OptimizeMemoryUsage = true;
saveOptions.Password = "password";
saveOptions.Protection = new WordProcessingProtection(WordProcessingProtectionType.ReadOnly, "write_password");
using (FileStream outputStream = File.Create("filepath/editedDocument.docx"))
{
editor.Save(afterEdit, outputStream, saveOptions);
}
}
}
}
}
ต่อไปนี้เป็นเอกสารผลลัพธ์ที่เหตุการณ์ทั้งหมดถูกแทนที่โดยใช้โค้ดด้านบน
บทสรุป
โดยสรุป เราได้กล่าวถึงการแก้ไขเอกสาร Word ใน C# โดยใช้ API การแก้ไขเอกสารสำหรับแอปพลิเคชัน .NET คุณสามารถใช้ API กับโปรแกรมแก้ไขแบบ WYSIWYG เพื่อแก้ไขภาพเอกสารของคุณได้ หลังจากนั้น คุณสามารถสร้างโปรแกรมแก้ไขเอกสารของคุณเองได้ ในทำนองเดียวกัน คุณยังสามารถรวมคุณสมบัติการแก้ไขภายในแอปพลิเคชัน .NET ของคุณได้อีกด้วย
สำหรับรายละเอียด ตัวเลือก และตัวอย่างเพิ่มเติม คุณสามารถไปที่ เอกสารประกอบ และที่เก็บ GitHub หากต้องการสอบถามเพิ่มเติม โปรดติดต่อฝ่ายสนับสนุนใน ฟอรัม