ส่งออกข้อมูลแผ่นงาน Excel ไปยังตาราง

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

ความต้องการ

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

  • ความรู้พื้นฐานเกี่ยวกับภาษาการเขียนโปรแกรม C#
  • ติดตั้ง Visual Studio บนเครื่องของคุณแล้ว
  • Aspose.PDF สำหรับไลบรารี .NET ถูกเพิ่มในโครงการของคุณ

ขั้นตอนที่ 1: การตั้งค่าสภาพแวดล้อม

ในการเริ่มต้น ให้สร้างโปรเจ็กต์ C# ใหม่ใน Visual Studio เพิ่มการอ้างอิงไปยังไลบรารี Aspose.PDF สำหรับ .NET โดยการคลิกขวาที่โปรเจ็กต์ของคุณใน Solution Explorer เลือก “จัดการแพ็คเกจ NuGet” และค้นหา “Aspose.PDF” ติดตั้งแพ็คเกจและคุณพร้อมที่จะใช้งานแล้ว

ขั้นตอนที่ 2: กำลังโหลดแผ่นงาน Excel

ในขั้นตอนแรกของโค้ด เราจะกำหนดเส้นทางไปยังไดเร็กทอรีที่มีเอกสาร Excel แทนที่ “ไดเรกทอรีเอกสารของคุณ” ด้วยเส้นทางไดเรกทอรีจริงที่มีไฟล์ Excel ของคุณ

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

Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(new FileStream(dataDir + "newBook1.xlsx", FileMode.Open));

ที่นี่ เราใช้ไลบรารี Aspose.Cells เพื่อโหลดเวิร์กบุ๊ก Excel ตรวจสอบให้แน่ใจว่าได้แทนที่ “newBook1.xlsx” ด้วยชื่อไฟล์ Excel ของคุณ

ขั้นตอนที่ 3: การเข้าถึงแผ่นงาน

ต่อไปเราต้องเข้าถึงแผ่นงานแรกในไฟล์ Excel เราทำสิ่งนี้โดยใช้Worksheets คอลเลกชันของWorkbook วัตถุ.

// การเข้าถึงแผ่นงานแรกในไฟล์ Excel
Aspose.Cells.Worksheet worksheet = workbook.Worksheets[0];

หากไฟล์ Excel ของคุณมีหลายแผ่นงาน คุณสามารถเปลี่ยนค่าดัชนีได้[0] เพื่อเข้าถึงแผ่นงานอื่น

ขั้นตอนที่ 4: การส่งออกข้อมูลไปยัง DataTable

ตอนนี้ เราจะส่งออกเนื้อหาของแผ่นงาน Excel ไปที่DataTable วัตถุ. เราระบุช่วงของเซลล์ที่จะส่งออกโดยใช้ExportDataTable วิธี.

// ส่งออกเนื้อหาของ 7 แถวและ 2 คอลัมน์โดยเริ่มจากเซลล์ที่ 1 ไปยัง DataTable
DataTable dataTable = worksheet.Cells.ExportDataTable(0, 0, worksheet.Cells.MaxRow + 1, worksheet.Cells.MaxColumn + 1, true);

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

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

ตอนนี้ เราจะสร้างเอกสาร PDF ใหม่โดยใช้ไลบรารี Aspose.PDF

// สร้างอินสแตนซ์ของอินสแตนซ์เอกสาร
Aspose.Pdf.Document pdf1 = new Aspose.Pdf.Document();

สิ่งนี้จะสร้างเอกสาร PDF เปล่าที่เราสามารถเพิ่มเนื้อหาได้

ขั้นตอนที่ 6: การเพิ่มหน้าและตาราง

ในการแสดงข้อมูลในรูปแบบตาราง เราจำเป็นต้องเพิ่มหน้าและตารางลงในเอกสาร PDF

// สร้างหน้าในอินสแตนซ์เอกสาร
Aspose.Pdf.Page sec1 = pdf1.Pages.Add();

// สร้างวัตถุตาราง
Aspose.Pdf.Table tab1 = new Aspose.Pdf.Table();

// เพิ่มวัตถุตารางในคอลเลกชันย่อหน้าของส่วน
sec1.Paragraphs.Add(tab1);

ที่นี่ เราสร้างหน้าใหม่และวัตถุตาราง จากนั้นเราเพิ่มตารางลงในคอลเลกชันย่อหน้าของหน้า

ขั้นตอนที่ 7: การตั้งค่าคุณสมบัติของตาราง

ก่อนที่จะนำเข้าข้อมูล เราจำเป็นต้องตั้งค่าคุณสมบัติบางอย่างของตาราง เช่น ความกว้างของคอลัมน์และเส้นขอบเซลล์เริ่มต้น

// กำหนดความกว้างของคอลัมน์ของตาราง
tab1.ColumnWidths = "40 100 100";

// ตั้งค่าเส้นขอบเซลล์เริ่มต้นของตารางโดยใช้วัตถุ BorderInfo
tab1.DefaultCellBorder = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, 0.1F);

ในตัวอย่างนี้ เราตั้งค่าความกว้างของคอลัมน์เป็น 40, 100 และ 100 หน่วย ปรับค่าตามข้อมูลของคุณ นอกจากนี้เรายังตั้งค่าเส้นขอบเซลล์เริ่มต้นเพื่อแสดงเส้นขอบทุกด้านของแต่ละเซลล์

ขั้นตอนที่ 8: การนำเข้าข้อมูลไปยังตาราง

ตอนนี้เราจะนำเข้าข้อมูลจากDataTable วัตถุลงในตารางโดยใช้ImportDataTable วิธี.

// นำเข้าข้อมูลลงในวัตถุ Table จาก DataTable ที่สร้างขึ้นด้านบน
tab1.ImportDataTable(dataTable, true, 0, 0, dataTable.Rows.Count + 1, dataTable.Columns.Count);

ที่นี่ เราระบุช่วงของแถวและคอลัมน์ที่จะนำเข้า ในตัวอย่างนี้ เรานำเข้าแถวและคอลัมน์ทั้งหมดจากdataTable วัตถุ.

ขั้นตอนที่ 9: การจัดรูปแบบตาราง

เพื่อปรับปรุงลักษณะที่ปรากฏของตาราง เราสามารถใช้การจัดรูปแบบกับเซลล์หรือแถวที่ต้องการได้ ในขั้นตอนนี้ เราจะจัดรูปแบบแถวแรกและแถวสลับกันของตาราง

// รับแถวที่ 1 จากตาราง
Aspose.Pdf.Row row1 = tab1.Rows[0];

// จัดรูปแบบแถวแรก
foreach(Aspose.Pdf.Cell curCell in row1.Cells)
{
     // กำหนดสีพื้นหลังของเซลล์ในแถวแรก
     curCell.BackgroundColor = Color.Blue;// กำหนดใบหน้าให้กับเซลล์ในแถวแรก
     curCell.DefaultCellTextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("Helvetica-Oblique");
    
     // กำหนดสีแบบอักษรของเซลล์ในแถวแรก
     curCell.DefaultCellTextState.ForegroundColor = Color.Yellow;
    
     // ตั้งค่าการจัดแนวข้อความสำหรับเซลล์ในแถวแรก
     curCell.DefaultCellTextState.HorizontalAlignment = Aspose.Pdf.HorizontalAlignment.Center;
}

// รูปแบบแถวสลับกัน
for (int All_Rows = 1; All_Rows <= dataTable.Rows.Count; All_Rows++)
{
     foreach(Aspose.Pdf.Cell curCell in tab1.Rows[All_Rows].Cells)
     {
         // กำหนดสีพื้นหลังของเซลล์ในแถวสลับกัน
         curCell.BackgroundColor = Color.Gray;
        
         // ตั้งค่าสีข้อความของเซลล์ในแถวสลับกัน
         curCell.DefaultCellTextState.ForegroundColor = Color.White;
     }
}

ที่นี่ เราวนซ้ำเซลล์ต่างๆ ในแถวแรก และตั้งค่าสีพื้นหลัง หน้าตาแบบอักษร สีแบบอักษร และการจัดแนวข้อความ จากนั้นเราวนซ้ำเซลล์ทั้งหมดในแถวสลับและตั้งค่าพื้นหลังและสีข้อความ

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

สุดท้าย เราจะบันทึกเอกสาร PDF ไปยังตำแหน่งที่ระบุ

// บันทึก PDF
pdf1.Save(dataDir + @"Exceldata_toPdf_table.pdf");

ตรวจสอบให้แน่ใจว่าได้แทนที่ “ไดเรกทอรีเอกสารของคุณ” ด้วยเส้นทางไดเรกทอรีและชื่อไฟล์ที่ต้องการสำหรับไฟล์ PDF เอาท์พุต

ตัวอย่างซอร์สโค้ดสำหรับส่งออกข้อมูลแผ่นงาน Excel ไปยังตารางโดยใช้ Aspose.PDF สำหรับ .NET

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

Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(new FileStream(dataDir + "newBook1.xlsx", FileMode.Open));
// การเข้าถึงแผ่นงานแรกในไฟล์ Excel
Aspose.Cells.Worksheet worksheet = workbook.Worksheets[0];
// ส่งออกเนื้อหาของ 7 แถวและ 2 คอลัมน์โดยเริ่มจากเซลล์ที่ 1 ไปยัง DataTable
DataTable dataTable = worksheet.Cells.ExportDataTable(0, 0, worksheet.Cells.MaxRow + 1, worksheet.Cells.MaxColumn + 1, true);

// สร้างอินสแตนซ์ของอินสแตนซ์เอกสาร
Aspose.Pdf.Document pdf1 = new Aspose.Pdf.Document();
// สร้างหน้าในอินสแตนซ์เอกสาร
Aspose.Pdf.Page sec1 = pdf1.Pages.Add();

// สร้างวัตถุตาราง
Aspose.Pdf.Table tab1 = new Aspose.Pdf.Table();

// เพิ่มวัตถุตารางในคอลเลกชันย่อหน้าของส่วน
sec1.Paragraphs.Add(tab1);

// กำหนดความกว้างของคอลัมน์ของตาราง เราจำเป็นต้องระบุ ColumnCount ด้วยตนเอง
// เนื่องจากแผ่นงาน Excel ปัจจุบันมีสามคอลัมน์ ดังนั้นเราจึงระบุจำนวนเดียวกัน
tab1.ColumnWidths = "40 100 100";

// ตั้งค่าเส้นขอบเซลล์เริ่มต้นของตารางโดยใช้วัตถุ BorderInfo
tab1.DefaultCellBorder = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, 0.1F);

// นำเข้าข้อมูลลงในวัตถุ Table จาก DataTable ที่สร้างขึ้นด้านบน
tab1.ImportDataTable(dataTable, true, 0, 0, dataTable.Rows.Count + 1, dataTable.Columns.Count);
// รับแถวที่ 1 จากตาราง
Aspose.Pdf.Row row1 = tab1.Rows[0];

// วนซ้ำทุกเซลล์ในแถวที่ 1 และตั้งค่าสีพื้นหลังเป็นสีน้ำเงิน
foreach (Aspose.Pdf.Cell curCell in row1.Cells)
{
	// ตั้งค่าพื้นหลังของเซลล์ทั้งหมดในแถวที่ 1 ของตาราง
	curCell.BackgroundColor = Color.Blue;
	// กำหนดลักษณะแบบอักษรสำหรับเซลล์ของแถวที่ 1 ในตาราง
	curCell.DefaultCellTextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("Helvetica-Oblique");
	// ตั้งค่าสีแบบอักษรของเซลล์ทั้งหมดในแถวที่ 1 ของตาราง
	curCell.DefaultCellTextState.ForegroundColor = Color.Yellow;
	// ตั้งค่าการจัดแนวข้อความสำหรับเซลล์ของแถวที่ 1 ให้เป็นศูนย์กลาง
	curCell.DefaultCellTextState.HorizontalAlignment = Aspose.Pdf.HorizontalAlignment.Center;
}

for (int All_Rows = 1; All_Rows <= dataTable.Rows.Count; All_Rows++)
{
	// วนซ้ำทุกเซลล์ในแถวที่ 1 และตั้งค่าสีพื้นหลังเป็นสีน้ำเงิน
	foreach (Aspose.Pdf.Cell curCell in tab1.Rows[All_Rows].Cells)
	{
		// กำหนดสีพื้นหลังของเซลล์ทั้งหมดยกเว้นแถวที่ 1
		curCell.BackgroundColor = Color.Gray;
		// ตั้งค่าสีข้อความของเซลล์ทั้งหมดยกเว้นแถวที่ 1
		curCell.DefaultCellTextState.ForegroundColor = Color.White;
	}
}

// บันทึก PDF
pdf1.Save(dataDir + @"Exceldata_toPdf_table.pdf");

บทสรุป

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

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

ถาม: การส่งออกข้อมูลเวิร์กชีต Excel ไปยังตาราง PDF มีจุดประสงค์อะไร

ตอบ: การส่งออกข้อมูลเวิร์กชีต Excel ไปยังตาราง PDF ช่วยให้คุณสามารถนำเสนอข้อมูลในรูปแบบที่มีโครงสร้างและจัดระเบียบได้ ช่วยให้คุณสามารถสร้างไฟล์ PDF ด้วยตารางที่มีข้อมูลจากแผ่นงาน Excel ทำให้ง่ายต่อการแชร์และเก็บรักษาข้อมูลในรูปแบบเอกสารแบบพกพา

ถาม: ฉันสามารถปรับแต่งลักษณะที่ปรากฏของตาราง PDF ได้หรือไม่

ตอบ: ได้ คุณสามารถปรับแต่งลักษณะที่ปรากฏของตาราง PDF ได้โดยใช้คุณสมบัติต่างๆ ที่ Aspose.PDF สำหรับ .NET มอบให้ ในซอร์สโค้ด C# ที่ให้มา คุณสามารถแก้ไขความกว้างของคอลัมน์ เส้นขอบเซลล์ การจัดตำแหน่งข้อความ รูปแบบแบบอักษร และอื่นๆ เพื่อให้เหมาะกับความต้องการเฉพาะของคุณ

ถาม: ฉันจะจัดการไฟล์ Excel ที่มีแผ่นงานหลายแผ่นได้อย่างไร

ตอบ: ในโค้ด C# ที่ให้มา เราเข้าถึงเวิร์กชีตแรกในไฟล์ Excel โดยใช้ดัชนี[0] . หากไฟล์ Excel ของคุณมีหลายแผ่นงาน คุณสามารถเข้าถึงได้โดยการเปลี่ยนค่าดัชนีตามลำดับ เช่น[1] สำหรับแผ่นงานที่สองหรือ[2] สำหรับใบงานที่สาม

ถาม: ฉันสามารถใช้การจัดรูปแบบอื่นกับแถวหรือเซลล์ที่ระบุในตาราง PDF ได้หรือไม่

ตอบ: ได้ คุณสามารถใช้การจัดรูปแบบที่แตกต่างกันกับแถวหรือเซลล์ที่ต้องการในตาราง PDF ได้ ในซอร์สโค้ด C# ที่ให้มา เราได้สาธิตวิธีการจัดรูปแบบแถวแรกและสลับแถวให้แตกต่างกันโดยการเปลี่ยนสีพื้นหลัง ลักษณะแบบอักษร และสีแบบอักษร คุณสามารถใช้เทคนิคการจัดรูปแบบที่คล้ายกันกับแถวหรือเซลล์ที่ต้องการได้

ถาม: Aspose.PDF สำหรับ .NET เป็นไลบรารีเดียวที่อนุญาตให้ส่งออกข้อมูล Excel ไปยังตาราง PDF หรือไม่

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