วิธีแปลงแผ่นงานเป็นภาพใน C#

วิธีแปลงแผ่นงานเป็นภาพใน C#

การส่งออกแผ่นงาน Excel เพียงแผ่นเดียวไปยังรูปแบบภาพ (เช่น PNG, JPEG) มีประโยชน์เมื่อสร้างตัวอย่าง ส่งออกกราฟ หรือแชร์การแสดงผลแบบอ่านอย่างเดียวของเนื้อหาสเปรดชีต คู่มือนี้จะแสดงให้คุณเห็นวิธีการแปลงแผ่นงานหนึ่งจากสมุดงาน Excel เป็นภาพโดยใช้ Aspose.Cells for .NET

กรณีการใช้งาน

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

คู่มือทีละขั้นตอน

ขั้นตอนที่ 1: ติดตั้ง Aspose.Cells for .NET

dotnet add package Aspose.Cells

ขั้นตอนที่ 2: โหลดไฟล์ Excel

Workbook workbook = new Workbook("SalesData.xlsx");
Worksheet sheet = workbook.Worksheets["Q1 Report"]; // เข้าถึงแผ่นงานเฉพาะ

ขั้นตอนที่ 3: กำหนดตัวเลือกการเรนเดอร์ภาพ

ImageOrPrintOptions options = new ImageOrPrintOptions
{
    ImageType = ImageType.Png,
    OnePagePerSheet = true,
    HorizontalResolution = 200,
    VerticalResolution = 200,
    PrintingPageType = PrintingPageType.Default
};

ขั้นตอนที่ 4: สร้างอ็อบเจ็กต์ SheetRender

SheetRender renderer = new SheetRender(sheet, options);

ขั้นตอนที่ 5: เรนเดอร์แต่ละหน้าเป็นภาพ

for (int pageIndex = 0; pageIndex < renderer.PageCount; pageIndex++)
{
    string imageName = $"worksheet_q1_page_{pageIndex + 1}.png";
    renderer.ToImage(pageIndex, imageName);
}

ขั้นตอนที่ 6: บันทึกภาพ

โค้ดนี้จะบันทึกภาพหนึ่งภาพต่อหนึ่งหน้าที่พิมพ์ได้ในแผ่นงานโดยอัตโนมัติ

ขั้นตอนที่ 7: การปรับปรุงเพิ่มเติม (ถ้ามี)

คุณสามารถใช้การตั้งค่าเลย์เอาต์เพิ่มเติม:

// แสดงเส้นตารางในภาพผลลัพธ์
options.ShowGridLines = true;

// พอดีเนื้อหาทั้งหมดในหน้าเดียว
options.AllColumnsInOnePagePerSheet = true;

โค้ดตัวอย่างทั้งหมด

using System;
using Aspose.Cells;

class Program
{
    static void Main()
    {
        // โหลดสมุดงาน Excel
        Workbook workbook = new Workbook("SalesData.xlsx");

        // เข้าถึงแผ่นงานเฉพาะ
        Worksheet sheet = workbook.Worksheets["Q1 Report"];

        // กำหนดตัวเลือกการเรนเดอร์ภาพ
        ImageOrPrintOptions options = new ImageOrPrintOptions
        {
            ImageType = ImageType.Png,
            OnePagePerSheet = true,
            HorizontalResolution = 200,
            VerticalResolution = 200,
            PrintingPageType = PrintingPageType.Default
        };

        // เปิดใช้งานเส้นตารางถ้าต้องการ
        options.ShowGridLines = true;

        // เรนเดอร์แผ่นงานเป็นภาพ
        SheetRender renderer = new SheetRender(sheet, options);

        for (int pageIndex = 0; pageIndex < renderer.PageCount; pageIndex++)
        {
            string imageName = $"worksheet_q1_page_{pageIndex + 1}.png";
            renderer.ToImage(pageIndex, imageName);
            Console.WriteLine($"บันทึก: {imageName}");
        }

        Console.WriteLine("แผ่นงานเรนเดอร์เป็นภาพเรียบร้อยแล้ว");
    }
}

สถานการณ์ทั่วไป & การแก้ไขปัญหา

ปัญหาวิธีแก้ไข
เนื้อหาถูกตัดใช้ AllColumnsInOnePagePerSheet = true
ผลลัพธ์มีคุณภาพต่ำเพิ่มความละเอียดของภาพ
เส้นตารางหายตั้งค่า ShowGridLines = true
 แบบไทย