แยกตารางออกจากหน้าเอกสาร

การแนะนำ

ในบทช่วยสอนนี้ เราจะสำรวจวิธีแยกตารางออกจากหน้าเอกสารโดยใช้ GroupDocs.Parser สำหรับ .NET GroupDocs.Parser เป็นไลบรารีอันทรงพลังที่ช่วยให้นักพัฒนาสามารถทำงานกับรูปแบบเอกสารที่หลากหลาย เช่น PDF, DOCX, XLSX และอื่นๆ ด้วยการใช้ประโยชน์จากคุณลักษณะนี้ เราสามารถดึงข้อมูลที่มีโครงสร้าง เช่น ตาราง ออกจากเอกสารเหล่านี้ได้อย่างมีประสิทธิภาพ ทำให้เราสามารถจัดการและวิเคราะห์ข้อมูลโดยทางโปรแกรมได้

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

ก่อนเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:

  • ติดตั้ง Visual Studio บนเครื่องของคุณแล้ว
  • ความเข้าใจพื้นฐานเกี่ยวกับการพัฒนา C# และ .NET
  • GroupDocs.Parser สำหรับไลบรารี .NET คุณสามารถดาวน์โหลดได้จากที่นี่.
  • เข้าถึงเอกสารตัวอย่าง (PDF, DOCX ฯลฯ) ที่มีตารางสำหรับการแยกข้อมูล

นำเข้าเนมสเปซ

ขั้นแรก ให้เริ่มต้นด้วยการนำเข้าเนมสเปซที่จำเป็นในโปรเจ็กต์ C# ของคุณ:

using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using GroupDocs.Parser.Data;
using GroupDocs.Parser.Options;
using GroupDocs.Parser.Templates;

ขั้นตอนที่ 1: สร้างอินสแตนซ์ของ Parser Class

ยกตัวอย่างParser คลาสโดยระบุพาธไปยังเอกสารตัวอย่างของคุณ:

using (Parser parser = new Parser("YourSampleFile.pdf"))
{
    //รหัสของคุณยังคงอยู่ที่นี่...
}

ขั้นตอนที่ 2: ตรวจสอบการสนับสนุนการแยกตารางเอกสาร

ก่อนดำเนินการต่อ ให้ตรวจสอบว่าเอกสารรองรับการแยกตารางหรือไม่:

if (!parser.Features.Tables)
{
    Console.WriteLine("Document does not support table extraction.");
    return;
}

ขั้นตอนที่ 3: กำหนดเค้าโครงตาราง

กำหนดเค้าโครงของตารางที่จะแยกออกจากเอกสาร ระบุความกว้างของคอลัมน์และความสูงของแถวตามโครงสร้างของเอกสารของคุณ:

TemplateTableLayout layout = new TemplateTableLayout(
    new double[] { 50, 95, 275, 415, 485, 545 },  // ความกว้างของคอลัมน์
    new double[] { 325, 340, 365, 395 });         // ความสูงของแถว

ขั้นตอนที่ 4: กำหนดค่าตัวเลือกการแยกตาราง

สร้างตัวเลือกสำหรับการแยกตารางโดยใช้เค้าโครงที่ระบุ:

PageTableAreaOptions options = new PageTableAreaOptions(layout);

ขั้นตอนที่ 5: ดึงข้อมูลเอกสาร

ดึงข้อมูลเกี่ยวกับเอกสาร รวมทั้งจำนวนหน้า:

IDocumentInfo documentInfo = parser.GetDocumentInfo();
if (documentInfo.PageCount == 0)
{
    Console.WriteLine("Document has no pages.");
    return;
}

ขั้นตอนที่ 6: วนซ้ำหน้าเอกสาร

วนซ้ำแต่ละหน้าของเอกสารเพื่อแยกตาราง:

for (int pageIndex = 0; pageIndex < documentInfo.PageCount; pageIndex++)
{
    Console.WriteLine($"Page {pageIndex + 1}/{documentInfo.PageCount}");
    // แยกตารางออกจากหน้าปัจจุบัน
    IEnumerable<PageTableArea> tables = parser.GetTables(pageIndex, options);
    // วนซ้ำตารางที่แยกออกมา
    foreach (PageTableArea table in tables)
    {
        // วนซ้ำแถวของตาราง
        for (int row = 0; row < table.RowCount; row++)
        {
            // วนซ้ำคอลัมน์ของตาราง
            for (int column = 0; column < table.ColumnCount; column++)
            {
                // รับเซลล์ตาราง
                PageTableAreaCell cell = table[row, column];
                if (cell != null)
                {
                    // พิมพ์ข้อความของเซลล์ตาราง
                    Console.Write(cell.Text);
                    Console.Write(" | ");
                }
            }
            Console.WriteLine();
        }
        Console.WriteLine();
    }
}

บทสรุป

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

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

GroupDocs.Parser สามารถแยกตารางจากเอกสารทุกประเภทได้หรือไม่

GroupDocs.Parser รองรับรูปแบบเอกสารที่หลากหลาย เช่น PDF, DOCX, XLSX และอื่นๆ ช่วยให้สามารถแยกตารางจากประเภทไฟล์ที่เข้ากันได้

GroupDocs.Parser สำหรับ .NET เหมาะสำหรับการประมวลผลเอกสารขนาดใหญ่หรือไม่

ใช่ GroupDocs.Parser ได้รับการออกแบบมาเพื่อจัดการเอกสารขนาดใหญ่อย่างมีประสิทธิภาพ ทำให้เหมาะสำหรับการประมวลผลชุดข้อมูลขนาดใหญ่

GroupDocs.Parser รักษาการจัดรูปแบบในระหว่างการแยกตารางหรือไม่

ใช่ GroupDocs.Parser จะเก็บรายละเอียดการจัดรูปแบบ เช่น เส้นขอบเซลล์ สไตล์ข้อความ และการจัดแนวระหว่างการแยกตาราง

ฉันสามารถแยกตารางเฉพาะตามเกณฑ์เนื้อหาได้หรือไม่

GroupDocs.Parser นำเสนอตัวเลือกที่ยืดหยุ่นในการกำหนดเป้าหมายตารางเฉพาะตามเทมเพลตเค้าโครงหรือเงื่อนไขเนื้อหาสำหรับการแยก

GroupDocs.Parser เข้ากันได้กับ .NET Core หรือไม่

ใช่ GroupDocs.Parser เข้ากันได้กับทั้งสภาพแวดล้อม .NET Framework และ .NET Core