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

C ++ API สำหรับการทำงานกับความคิดเห็นในเอกสาร Word

Aspose.Words for C++ คือไลบรารี่ C++ ดั้งเดิมที่ให้คุณสร้าง อ่าน แก้ไข และแปลงเอกสาร Microsoft Word นอกจากนี้ยังรองรับการทำงานกับความคิดเห็นในไฟล์ DOCX และ DOC คุณสามารถติดตั้ง API ผ่าน NuGet หรือดาวน์โหลดโดยตรงจากส่วน ดาวน์โหลด

PM> Install-Package Aspose.Words.Cpp

เพิ่มความคิดเห็นในเอกสาร Word โดยใช้ C ++

Aspose.Words for C++ API ให้ความสามารถในการเพิ่มความคิดเห็นด้วยชื่อผู้เขียน ชื่อย่อ และวันที่/เวลา ต่อไปนี้เป็นขั้นตอนในการเพิ่มความคิดเห็นในเอกสาร Word

โค้ดตัวอย่างต่อไปนี้สาธิตวิธีเพิ่มความคิดเห็นในเอกสาร Word โดยใช้ C++

// เส้นทางไดเรกทอรี
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// โหลดไฟล์เวิร์ด
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"Sample 1.docx");

// สร้างอินสแตนซ์ของคลาส DocumentBuilder
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);

// เพิ่มความเห็น
System::SharedPtr<Comment> comment = System::MakeObject<Comment>(doc, u"Aspose", u"AFFA", System::DateTime::get_Today());
builder->get_CurrentParagraph()->AppendChild(comment);
comment->get_Paragraphs()->Add(System::MakeObject<Paragraph>(doc));
comment->get_FirstParagraph()->get_Runs()->Add(System::MakeObject<Run>(doc, u"Comment text."));

// บันทึกเอกสาร
doc->Save(outputDataDir + u"AddCommentsToExistingDoc.docx");

ต่อไปนี้คือรูปภาพของเอาต์พุตที่สร้างโดยโค้ดตัวอย่าง

อิมเมจของเอาต์พุตที่สร้างโดยโค้ดตัวอย่าง

อ่านความคิดเห็นจากเอกสาร Word

ต่อไปนี้เป็นขั้นตอนในการอ่านความคิดเห็นจากเอกสาร Word

  • โหลดเอกสาร Word โดยใช้คลาส Document
  • รับความคิดเห็นโดยใช้เมธอด Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep)
  • ทำซ้ำผ่านความคิดเห็นและดึงข้อมูลของความคิดเห็นแต่ละรายการ

ต่อไปนี้คือโค้ดตัวอย่างสำหรับอ่านความคิดเห็นจากเอกสาร Word โดยใช้ C++

// เส้นทางไดเรกทอรี
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// โหลดไฟล์เวิร์ด
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// ดึงความคิดเห็น
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// วนรอบความคิดเห็นทั้งหมด
for (System::SharedPtr<Comment> comment : System::IterateOver<System::SharedPtr<Comment>>(comments))
{
	// พิมพ์ข้อมูลความคิดเห็น
	std::cout << comment->get_Author() + u" " + comment->get_DateTime() + u" " + System::StaticCast<Node>(comment)->ToString(SaveFormat::Text);
}

แก้ไขความคิดเห็นในเอกสาร Word โดยใช้ C ++

หากต้องการแก้ไขความคิดเห็น ให้ดึงข้อมูลโดยใช้เมธอด NodeCollection->idxget(int32t index) และเปลี่ยนตามความต้องการของคุณ ต่อไปนี้เป็นขั้นตอนในการแก้ไขความคิดเห็นในเอกสาร Word

โค้ดตัวอย่างต่อไปนี้แสดงวิธีแก้ไขความคิดเห็นในเอกสาร Word โดยใช้ C++

// เส้นทางไดเรกทอรี
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// โหลดไฟล์เวิร์ด
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// ดึงความคิดเห็น
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// รับความคิดเห็น
System::SharedPtr<Comment> comment = System::DynamicCast<Comment>(comments->idx_get(0));

// อัปเดตข้อความความคิดเห็น
comment->SetText(u"Updated Text");

// บันทึกเอกสาร
doc->Save(outputDataDir + u"UpdatedComment.docx");

ลบความคิดเห็นจากเอกสาร Word โดยใช้ C ++

Aspose.Words for C++ API มีหลายวิธีในการลบความคิดเห็นจากเอกสาร Word ในส่วนนี้ คุณจะได้เรียนรู้วิธีการลบความคิดเห็นเฉพาะ ข้อคิดเห็นโดยผู้เขียน และความคิดเห็นทั้งหมดโดยใช้ C++

ลบความคิดเห็นเฉพาะ

ต่อไปนี้เป็นขั้นตอนในการลบความคิดเห็นเฉพาะ

โค้ดตัวอย่างต่อไปนี้แสดงวิธีการลบความคิดเห็นเฉพาะจากเอกสาร Word โดยใช้ C++

// เส้นทางไดเรกทอรี
System::String sourceDataDir = u"D:\\Work\\Aspose\\01_SourceDirectory\\";
System::String outputDataDir = u"D:\\Work\\Aspose\\02_OutputDirectory\\";

// โหลดไฟล์เวิร์ด
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// ดึงความคิดเห็น
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// รับความคิดเห็น
System::SharedPtr<Comment> comment = System::DynamicCast<Comment>(comments->idx_get(2));

// ลบความคิดเห็น
comment->Remove();

// บันทึกเอกสาร
doc->Save(outputDataDir + u"DeleteSpecificComments.docx");

การลบความคิดเห็นโดยผู้เขียน

ต่อไปนี้เป็นขั้นตอนการลบความคิดเห็นโดยผู้เขียน

  • ขั้นแรก ให้โหลดเอกสาร Word โดยใช้คลาส Document
  • รับความคิดเห็นโดยใช้เมธอด Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep)
  • วนรอบความคิดเห็น
  • ภายในลูป เรียกความคิดเห็นและเปรียบเทียบผู้เขียน หากผู้เขียนตรงกัน ให้ลบความคิดเห็น
  • สุดท้าย บันทึกเอกสารโดยใช้เมธอด Document->Save(System::String fileName)

ต่อไปนี้คือโค้ดตัวอย่างในการลบความคิดเห็นโดยผู้เขียนโดยใช้ C++

// เส้นทางไดเรกทอรี
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// โหลดไฟล์เวิร์ด
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// ดึงความคิดเห็น
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// วนซ้ำความคิดเห็นทั้งหมดและลบความคิดเห็นที่เขียนโดยผู้เขียน "Aposose"
for (int32_t i = comments->get_Count() - 1; i >= 0; i--)
{
	System::SharedPtr<Comment> comment = System::DynamicCast<Comment>(comments->idx_get(i));
	if (comment->get_Author() == u"Aspose")
	{
		comment->Remove();
	}
}

// บันทึกเอกสาร
doc->Save(outputDataDir + u"DeleteCommentsByAuthor.docx");

ลบความคิดเห็นทั้งหมด

แทนที่จะลบความคิดเห็นแต่ละรายการ คุณสามารถลบความคิดเห็นทั้งหมดพร้อมกันโดยใช้เมธอด NodeCollection->Clear() ต่อไปนี้เป็นขั้นตอนในการลบความคิดเห็นทั้งหมดจากเอกสาร Word

โค้ดตัวอย่างต่อไปนี้สาธิตวิธีการลบความคิดเห็นทั้งหมดจากเอกสาร Word โดยใช้ C++

// เส้นทางไดเรกทอรี
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// โหลดไฟล์เวิร์ด
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// ดึงความคิดเห็น
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// ลบความคิดเห็นทั้งหมด
comments->Clear();

// บันทึกเอกสาร
doc->Save(outputDataDir + u"DeleteAllComments.docx");

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

คุณสามารถลองใช้ API ได้โดยไม่มีข้อจำกัดในการประเมินโดยขอ ใบอนุญาตชั่วคราวฟรี

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีทำงานกับความคิดเห็นในเอกสาร Word โดยใช้ C++ คุณได้เรียนรู้วิธีเพิ่ม อ่าน แก้ไข และลบความคิดเห็น นอกจากนี้ คุณได้เห็นวิธีลบความคิดเห็นเฉพาะ ข้อคิดเห็นโดยผู้เขียน และความคิดเห็นทั้งหมดโดยใช้ Aspose.Words for C++ API API มีคุณสมบัติเพิ่มเติมมากมายสำหรับการทำงานที่เกี่ยวข้องกับ Word ของคุณโดยอัตโนมัติ คุณสามารถสำรวจ API โดยละเอียดได้โดยไปที่ เอกสารอย่างเป็นทางการ ในกรณีที่มีคำถามใดๆ โปรดติดต่อเราได้ที่ ฟอรัมสนับสนุนฟรี

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