แก้ไขการควบคุมเนื้อหา

บทช่วยสอนนี้จะอธิบายวิธีแก้ไขการควบคุมเนื้อหาประเภทต่างๆ ในเอกสาร Word โดยใช้ Aspose.Words สำหรับ .NET คุณสามารถอัปเดตข้อความ ค่าที่เลือกของรายการดรอปดาวน์ หรือแทนที่รูปภาพภายในตัวควบคุมเนื้อหาได้

ข้อกำหนดเบื้องต้น

หากต้องการติดตามบทช่วยสอนนี้ คุณจะต้องมีสิ่งต่อไปนี้:

  • ติดตั้ง Aspose.Words สำหรับไลบรารี .NET แล้ว
  • ความรู้พื้นฐานเกี่ยวกับ C# และการประมวลผลคำด้วยเอกสาร Word

ขั้นตอนที่ 1: ตั้งค่าไดเร็กทอรีเอกสาร

เริ่มต้นด้วยการตั้งค่าเส้นทางไปยังไดเร็กทอรีเอกสารของคุณ แทนที่"YOUR DOCUMENT DIRECTORY" ด้วยเส้นทางจริงไปยังไดเร็กทอรีที่เอกสารของคุณตั้งอยู่

string dataDir = "YOUR DOCUMENT DIRECTORY";

ขั้นตอนที่ 2: โหลดเอกสารและวนซ้ำการควบคุมเนื้อหา

โหลดเอกสาร Word โดยใช้ไฟล์DocumentConstructor โดยส่งเส้นทางไปยังเอกสารเป็นพารามิเตอร์ วนซ้ำแท็กเอกสารที่มีโครงสร้างทั้งหมดในเอกสารโดยใช้foreach วนซ้ำ

Document doc = new Document(dataDir + "Structured document tags.docx");
foreach (StructuredDocumentTag sdt in doc.GetChildNodes(NodeType.StructuredDocumentTag, true))
{
    // ดำเนินการตามประเภทของการควบคุมเนื้อหา
}

ขั้นตอนที่ 3: แก้ไขการควบคุมเนื้อหาข้อความธรรมดา

สำหรับการควบคุมเนื้อหาประเภทSdtType.PlainTextลบรายการย่อยที่มีอยู่ทั้งหมด สร้างย่อหน้าใหม่ และเพิ่มข้อความที่ต้องการต่อท้าย

case SdtType.PlainText:
{
    sdt.RemoveAllChildren();
    Paragraph para = sdt.AppendChild(new Paragraph(doc)) as Paragraph;
    Run run = new Run(doc, "new text goes here");
    para.AppendChild(run);
    break;
}

ขั้นตอนที่ 4: แก้ไขการควบคุมเนื้อหารายการแบบหล่นลง

สำหรับการควบคุมเนื้อหาประเภทSdtType.DropDownList ให้อัปเดตค่าที่เลือกโดยตั้งค่าเป็นค่าเฉพาะSdtListItem.

case SdtType.DropDownList:
{
    SdtListItem secondItem = sdt.ListItems[2];
    sdt.ListItems.SelectedValue = secondItem;
    break;
}

ขั้นตอนที่ 5: แก้ไขการควบคุมเนื้อหารูปภาพ

สำหรับการควบคุมเนื้อหาประเภทSdtType.Pictureให้ดึงรูปร่างภายในตัวควบคุมเนื้อหาและแทนที่รูปภาพด้วยรูปร่างใหม่

case SdtType.Picture:
{
    Shape shape = (Shape)sdt.GetChild(NodeType.Shape, 0, true);
    if (shape.HasImage)
    {
        shape.ImageData.SetImage(ImagesDir + "Watermark.png");
    }
    break;
}

ขั้นตอนที่ 6: บันทึกเอกสารที่แก้ไข

บันทึกเอกสารที่แก้ไขไปยังไดเร็กทอรีที่ระบุโดยใช้Save วิธี. ระบุชื่อไฟล์ที่ต้องการพร้อมนามสกุลไฟล์ที่เหมาะสม ในตัวอย่างนี้ เราบันทึกเอกสารเป็น “WorkingWithSdt.ModifyContentControls.docx”

doc.Save(dataDir + "WorkingWithSdt.ModifyContentControls.docx");

ตัวอย่างซอร์สโค้ดสำหรับแก้ไขการควบคุมเนื้อหาโดยใช้ Aspose.Words สำหรับ .NET

	// เส้นทางไปยังไดเร็กทอรีเอกสารของคุณ
	string dataDir = "YOUR DOCUMENT DIRECTORY";

	Document doc = new Document(dataDir + "Structured document tags.docx");
	foreach (StructuredDocumentTag sdt in doc.GetChildNodes(NodeType.StructuredDocumentTag, true))
	{
		switch (sdt.SdtType)
		{
			case SdtType.PlainText:
			{
				sdt.RemoveAllChildren();
				Paragraph para = sdt.AppendChild(new Paragraph(doc)) as Paragraph;
				Run run = new Run(doc, "new text goes here");
				para.AppendChild(run);
				break;
			}
			case SdtType.DropDownList:
			{
				SdtListItem secondItem = sdt.ListItems[2];
				sdt.ListItems.SelectedValue = secondItem;
				break;
			}
			case SdtType.Picture:
			{
				Shape shape = (Shape) sdt.GetChild(NodeType.Shape, 0, true);
				if (shape.HasImage)
				{
					shape.ImageData.SetImage(ImagesDir + "Watermark.png");
				}
				break;
			}
		}
	}
	doc.Save(dataDir + "WorkingWithSdt.ModifyContentControls.docx");

แค่นั้นแหละ! คุณได้แก้ไขการควบคุมเนื้อหาประเภทต่างๆ ในเอกสาร Word ของคุณสำเร็จแล้วโดยใช้ Aspose.Words สำหรับ .NET