เก็บโต๊ะไว้ด้วยกัน

การแนะนำ

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

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

ก่อนที่จะเริ่มบทช่วยสอน เราต้องแน่ใจก่อนว่าคุณมีทุกสิ่งที่จำเป็นเพื่อให้สามารถทำตามได้อย่างราบรื่น

Aspose.Words สำหรับไลบรารี .NET

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

สภาพแวดล้อมการพัฒนา

คุณควรมีการตั้งค่าสภาพแวดล้อมการพัฒนาเพื่อรันโค้ด C# เช่น:

  • Visual Studio (เวอร์ชันใหม่ล่าสุด)
  • .NET Framework 2.0 หรือใหม่กว่า

เอกสาร Word ที่มีตาราง

คุณจะต้องมีเอกสาร Word ที่มีตาราง ในบทช่วยสอนนี้ เราจะใช้เอกสารตัวอย่างที่เรียกว่า"Table spanning two pages.docx"ไฟล์นี้ประกอบด้วยตารางที่ครอบคลุมสองหน้าในปัจจุบัน

ใบอนุญาตชั่วคราว (ทางเลือก)

แม้ว่า Aspose.Words จะมาพร้อมกับรุ่นทดลองใช้งานฟรี แต่คุณอาจต้องการใช้ใบอนุญาตชั่วคราว เพื่อปลดล็อคศักยภาพของห้องสมุดให้เต็มที่

แพ็คเกจนำเข้า

ก่อนที่จะเขียนโค้ดใดๆ เราจะต้องนำเข้าเนมสเปซที่จำเป็นสำหรับการใช้งาน Aspose.Words สำหรับ .NET เพิ่มการนำเข้าต่อไปนี้ที่ด้านบนสุดของไฟล์โค้ดของคุณ:

using Aspose.Words;
using Aspose.Words.Tables;

เนมสเปซเหล่านี้ช่วยให้คุณเข้าถึงคลาสต่างๆ เช่นDocument, Table, Cellและอื่นๆ ที่เราจะใช้ในบทช่วยสอนนี้

ขั้นตอนที่ 1: โหลดเอกสาร

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

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

Document doc = new Document(dataDir + "Table spanning two pages.docx");

ในโค้ดนี้ เราจะระบุตำแหน่งของเอกสารของเรา แทนที่"YOUR DOCUMENTS DIRECTORY" พร้อมไดเร็กทอรีจริงที่คุณเก็บเอกสารไว้

ขั้นตอนที่ 2: เข้าถึงตาราง

เมื่อโหลดเอกสารแล้ว ขั้นตอนต่อไปคือการเข้าถึงตารางที่เราต้องการเก็บไว้ด้วยกัน ในตัวอย่างนี้ เราถือว่าตารางเป็นตารางแรกในเอกสาร

Table table = (Table) doc.GetChild(NodeType.Table, 0, true);

บรรทัดโค้ดนี้จะค้นหาตารางแรกในเอกสารGetChild วิธีการดึงข้อมูลประเภทโหนดเฉพาะ ซึ่งในกรณีนี้คือNodeType.Table . การ0 ระบุว่าเราต้องการตารางแรกและtrueแฟล็กช่วยให้แน่ใจว่าเราค้นหาซ้ำๆ ในโหนดย่อยทั้งหมด

ขั้นตอนที่ 3: วนซ้ำผ่านเซลล์ตาราง

ตอนนี้ เราต้องวนซ้ำผ่านแต่ละเซลล์ในตาราง เนื่องจากตารางมีหลายแถวและแต่ละแถวมีหลายเซลล์ เราจะวนซ้ำผ่านแต่ละเซลล์และให้แน่ใจว่าจะไม่แยกข้ามหน้า

foreach (Cell cell in table.GetChildNodes(NodeType.Cell, true))
{
    cell.EnsureMinimum();

ที่นี่,GetChildNodes ดึงข้อมูลเซลล์ทั้งหมดในตาราง และเราวนซ้ำผ่านแต่ละเซลล์EnsureMinimum() วิธีการนี้จะทำให้แน่ใจว่าแต่ละเซลล์มีอย่างน้อยหนึ่งย่อหน้า เนื่องจากเซลล์ว่างอาจทำให้เกิดปัญหาในภายหลังได้

ขั้นตอนที่ 4: ตั้งค่าคุณสมบัติ KeepWithNext

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

    foreach (Paragraph para in cell.Paragraphs)
        if (!(cell.ParentRow.IsLastRow && para.IsEndOfCell))
            para.ParagraphFormat.KeepWithNext = true;

ลูปนี้จะตรวจสอบทุกย่อหน้าภายในแต่ละเซลล์ เงื่อนไขนี้ช่วยให้แน่ใจว่าเราไม่ได้ใช้KeepWithNextทรัพย์สินถึงย่อหน้าสุดท้ายในแถวสุดท้าย มิฉะนั้น ทรัพย์สินจะไม่มีผล เนื่องจากไม่มีย่อหน้าถัดไป

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

สุดท้ายหลังจากใช้KeepWithNext คุณสมบัติเราจำเป็นต้องบันทึกเอกสารที่แก้ไข

doc.Save(dataDir + "WorkingWithTables.KeepTableTogether.docx");

บรรทัดนี้จะบันทึกเอกสารที่อัปเดตด้วยชื่อใหม่ โดยรักษาไฟล์ต้นฉบับไว้ ตอนนี้คุณสามารถเปิดไฟล์ที่ได้และเห็นว่าตารางจะไม่ถูกแบ่งออกเป็นสองหน้าอีกต่อไป!

บทสรุป

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

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

คำถามที่พบบ่อย

เหตุใดตารางของฉันจึงยังแบ่งข้ามหน้าหลังจากใช้โค้ดนี้

หากโต๊ะของคุณยังคงแตกอยู่ โปรดตรวจสอบให้แน่ใจว่าคุณได้ใช้KeepWithNext คุณสมบัติถูกต้อง ตรวจสอบซ้ำอีกครั้งว่าย่อหน้าทั้งหมด ยกเว้นย่อหน้าสุดท้ายในแต่ละเซลล์ มีการตั้งค่าคุณสมบัตินี้

ฉันสามารถเก็บเฉพาะแถวที่ระบุไว้ด้วยกันได้ไหม?

ใช่ คุณสามารถเลือกนำไปใช้ได้KeepWithNext คุณสมบัติให้กับแถวหรือย่อหน้าที่เฉพาะเจาะจงภายในตารางเพื่อควบคุมว่าส่วนใดควรอยู่ด้วยกัน

วิธีนี้ใช้กับตารางขนาดใหญ่ได้หรือไม่?

สำหรับตารางขนาดใหญ่ Word อาจแบ่งตารางออกเป็นหลายหน้าหากไม่มีพื้นที่เพียงพอที่จะใส่ตารางทั้งหมดลงในหน้าเดียว ลองปรับการจัดรูปแบบหรือระยะขอบของตารางให้รองรับตารางขนาดใหญ่

ฉันสามารถใช้วิธีนี้กับรูปแบบเอกสารอื่นได้หรือไม่

ใช่! Aspose.Words สำหรับ .NET รองรับรูปแบบต่างๆ มากมาย เช่น DOC, DOCX, PDF และอื่นๆ วิธีการเดียวกันนี้ใช้ได้กับรูปแบบต่างๆ ที่รองรับตาราง

Aspose.Words สำหรับ .NET เป็นไลบรารีฟรีหรือไม่

Aspose.Words สำหรับ .NET นำเสนอรุ่นทดลองใช้งานฟรี แต่หากต้องการเข้าถึงฟีเจอร์ทั้งหมดอย่างเต็มรูปแบบ คุณจะต้องซื้อใบอนุญาต คุณสามารถสำรวจตัวเลือกใบอนุญาตได้ที่หน้าสั่งซื้อ Aspose.