วิธีการแปลงสมุดงาน Excel ทั้งหมดเป็นภาพใน C#
วิธีการแปลงสมุดงาน Excel ทั้งหมดเป็นภาพใน C#
การแสดงไฟล์ Excel เป็นภาพนั้นมีความสำคัญเมื่อฝังสเปรดชีตในหน้าเว็บ เอกสาร หรือรายงาน บทความนี้จะแสดงวิธีการแปลงสมุดงาน Excel ทั้งหมดเป็นรูปแบบภาพคุณภาพสูงโดยใช้ Aspose.Cells for .NET
ทำไมต้องแปลงสมุดงานเป็นภาพ?
- สร้างการแสดงตัวอย่างสำหรับไฟล์ Excel
- เก็บสเปรดชีตในรูปแบบภาพ
- ฝังเนื้อหาสเปรดชีตในรายงานหรือกระบวนการพิมพ์
- แสดงสเปรดชีตในแอปที่ไม่รองรับการดู Excel แบบเนทีฟ
การดำเนินการทีละขั้นตอน
ขั้นตอนที่ 1: ติดตั้ง Aspose.Cells for .NET
เพิ่ม Aspose.Cells ลงในโปรเจกต์ของคุณโดยใช้ NuGet:
dotnet add package Aspose.Cells
ขั้นตอนที่ 2: โหลดไฟล์ Excel
Workbook workbook = new Workbook("Book1.xlsx");
ขั้นตอนที่ 3: กำหนดค่าตัวเลือกภาพ
ImageOrPrintOptions options = new ImageOrPrintOptions
{
ImageType = ImageType.Png,
OnePagePerSheet = true,
HorizontalResolution = 200,
VerticalResolution = 200
};
การตั้งค่าเหล่านี้ควบคุมรูปแบบและความละเอียดของผลลัพธ์ คุณยังสามารถกำหนดค่า:
Transparent
สำหรับพื้นหลังOnlyArea
เพื่อไม่รวมขอบPrintingPageType
สำหรับเนื้อหาที่จะรวม
ขั้นตอนที่ 4: แสดงสมุดงาน
WorkbookRender renderer = new WorkbookRender(workbook, options);
ขั้นตอนที่ 5: แปลงแต่ละหน้าเป็นภาพ
วนลูปผ่านหน้าและส่งออกแต่ละหน้า:
for (int i = 0; i < renderer.PageCount; i++)
{
string fileName = $"workbook_page_{i + 1}.png";
renderer.ToImage(i, fileName);
}
สิ่งนี้จะสร้างภาพหนึ่งภาพต่อหนึ่งหน้าตามเลย์เอาต์การพิมพ์ปัจจุบัน
ขั้นตอนที่ 6: บันทึกภาพ
โค้ดข้างต้นจะบันทึกไฟล์ภาพแต่ละไฟล์ลงในดิสก์โดยใช้ชื่อที่กำหนด
// ผลลัพธ์:
// workbook_page_1.png
// workbook_page_2.png
// ...
ขั้นตอนที่ 7: การปรับปรุงเพิ่มเติม (เลือกได้)
คุณสามารถปรับแต่งการแสดงภาพได้มากขึ้น:
// ตัวอย่าง: แสดงเส้นกริด
options.ShowGridLines = true;
// ตัวอย่าง: แสดงเนื้อหาทั้งหมดของแผ่นในหนึ่งหน้า
options.AllColumnsInOnePagePerSheet = true;
แนวทางปฏิบัติที่ดีที่สุด
- ใช้ความละเอียดสูง (200+ dpi) สำหรับภาพคุณภาพการพิมพ์
- เปิดใช้งาน
AllColumnsInOnePagePerSheet
สำหรับแผ่นกว้าง - รวมผลลัพธ์เป็น PDF หรือแกลเลอรีภาพสำหรับการนำเสนอ
ปัญหาที่พบบ่อย & วิธีแก้ไข
ปัญหา | วิธีแก้ไข |
---|---|
ภาพผลลัพธ์ว่างเปล่า | ตรวจสอบให้แน่ใจว่าสมุดงานถูกโหลดและมีข้อมูลที่มองเห็นได้ |
ภาพถูกตัด | ตั้งค่า OnePagePerSheet = true หรือปรับการปรับขนาดหน้า |
ผลลัพธ์คุณภาพต่ำ | เพิ่ม HorizontalResolution และ VerticalResolution |