การส่งออกข้อมูลเวิร์กชีต 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 แทนที่ “YOUR DOCUMENT DIRECTORY” ด้วยเส้นทางไดเร็กทอรีจริงที่ไฟล์ 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
วิธี.
// นำเข้าข้อมูลลงในวัตถุตารางจาก 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);
// นำเข้าข้อมูลลงในวัตถุตารางจาก 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)
{
// ตั้งค่าพื้นหลังของเซลล์ทั้งหมดในแถวแรกของตาราง
curCell.BackgroundColor = Color.Blue;
// ตั้งค่าแบบอักษรสำหรับเซลล์แถวแรกในตาราง
curCell.DefaultCellTextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("Helvetica-Oblique");
// ตั้งค่าสีแบบอักษรของเซลล์ทั้งหมดในแถวแรกของตาราง
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 คืออะไร
A: การส่งออกข้อมูลเวิร์กชีต Excel ไปยังตาราง PDF ช่วยให้คุณสามารถนำเสนอข้อมูลในรูปแบบที่มีโครงสร้างและเป็นระเบียบ ช่วยให้คุณสามารถสร้างไฟล์ PDF ที่มีตารางที่มีข้อมูลจากเวิร์กชีต Excel ทำให้แชร์และเก็บรักษาข้อมูลในรูปแบบเอกสารพกพาได้ง่ายขึ้น
ถาม: ฉันสามารถปรับแต่งลักษณะของตาราง PDF ได้หรือไม่
A: ใช่ คุณสามารถปรับแต่งลักษณะของตาราง PDF ได้โดยใช้คุณสมบัติต่างๆ ที่ Aspose.PDF สำหรับ .NET จัดเตรียมไว้ให้ ในโค้ดต้นฉบับ C# ที่ให้มา คุณสามารถปรับเปลี่ยนความกว้างของคอลัมน์ ขอบเซลล์ การจัดตำแหน่งข้อความ สไตล์ฟอนต์ และอื่นๆ เพื่อให้เหมาะกับความต้องการเฉพาะของคุณ
ถาม: ฉันจะจัดการไฟล์ Excel ที่มีเวิร์กชีตหลายแผ่นได้อย่างไร
A: ในโค้ด C# ที่ให้มา เราเข้าถึงเวิร์กชีตแรกในไฟล์ Excel โดยใช้ดัชนี[0]
หากไฟล์ Excel ของคุณมีเวิร์กชีตหลายแผ่น คุณสามารถเข้าถึงเวิร์กชีตเหล่านั้นได้โดยเปลี่ยนค่าดัชนีให้เหมาะสม เช่น[1]
สำหรับแผ่นงานที่สองหรือ[2]
สำหรับแผ่นงานที่สาม
ถาม: ฉันสามารถใช้การจัดรูปแบบที่แตกต่างกันกับแถวหรือเซลล์เฉพาะในตาราง PDF ได้หรือไม่
A: ใช่ คุณสามารถใช้การจัดรูปแบบที่แตกต่างกันกับแถวหรือเซลล์เฉพาะในตาราง PDF ได้ ในโค้ดต้นฉบับ C# ที่ให้มา เราได้สาธิตวิธีการจัดรูปแบบแถวแรกและสลับแถวให้แตกต่างกันโดยการเปลี่ยนสีพื้นหลัง สไตล์แบบอักษร และสีแบบอักษร คุณสามารถใช้เทคนิคการจัดรูปแบบที่คล้ายคลึงกันกับแถวหรือเซลล์เฉพาะใดๆ ได้ตามต้องการ
ถาม: Aspose.PDF สำหรับ .NET เป็นไลบรารีเดียวเท่านั้นที่อนุญาตให้ส่งออกข้อมูล Excel ไปยังตาราง PDF หรือไม่
A: Aspose.PDF สำหรับ .NET เป็นไลบรารีที่มีประสิทธิภาพสำหรับการทำงานกับเอกสาร PDF ในแอปพลิเคชัน .NET แม้ว่าจะมีไลบรารีอื่นๆ ให้เลือกใช้ แต่ Aspose.PDF สำหรับ .NET นำเสนอคุณลักษณะและความสามารถที่หลากหลายสำหรับการสร้าง จัดการ และส่งออกไฟล์ PDF ที่มีตารางจากข้อมูล Excel ทำให้เป็นตัวเลือกยอดนิยมสำหรับงานประเภทนี้