วิธีการแปลงช่วงเซลล์เป็นภาพใน C#

วิธีการแปลงช่วงเซลล์เป็นภาพใน C#

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

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

  • ส่งออกราคาโต๊ะหรือแคตตาล็อกผลิตภัณฑ์
  • แบ่งปันส่วนหนึ่งของเวิร์กชีตโดยไม่เปิดเผยไฟล์ทั้งหมด
  • จับช่วงที่เปลี่ยนแปลงสำหรับแดชบอร์ดหรือวิดเจ็ต

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

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

dotnet add package Aspose.Cells

ขั้นตอนที่ 2: โหลดเวิร์กบุ๊กและเวิร์กชีต

Workbook workbook = new Workbook("DataSet.xlsx");
Worksheet worksheet = workbook.Worksheets[0];

ขั้นตอนที่ 3: กำหนดช่วงที่จะส่งออก

// ระบุช่วงเช่น A1:D10
Range range = worksheet.Cells.CreateRange("A1", "D10");

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

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

ขั้นตอนที่ 5: สร้าง SheetRender และเรนเดอร์ช่วง

// คุณสามารถใช้ SheetRender กับขอบเขตการพิมพ์หากจำเป็น
SheetRender renderer = new SheetRender(worksheet, options);

ขั้นตอนที่ 6: ส่งออกช่วงเป็นภาพ

Aspose.Cells ไม่มีคลาส RangeRender โดยตรง แต่คุณยังสามารถตัดภาพโดยมุ่งเน้นการเรนเดอร์ไปที่ช่วงที่เลือกเท่านั้น:

// ตั้งค่าพื้นที่พิมพ์ด้วยตนเองสำหรับเวิร์กชีต
worksheet.PageSetup.PrintArea = "A1:D10";

// สร้าง SheetRender ใหม่โดยตั้งค่าการพิมพ์ที่ใช้แล้ว
renderer = new SheetRender(worksheet, options);

// เรนเดอร์และส่งออก
renderer.ToImage(0, "range_output.png");

ขั้นตอนที่ 7: บันทึกและตรวจสอบผลลัพธ์

คุณจะมีภาพที่ถูกตัดให้สะอาดของช่วง Excel ที่เลือกแล้ว


ตัวอย่างโค้ดครบถ้วน

using System;
using Aspose.Cells;

class Program
{
    static void Main()
    {
        // โหลดเวิร์กบุ๊ก
        Workbook workbook = new Workbook("DataSet.xlsx");

        // เข้าถึงเวิร์กชีตแรก
        Worksheet worksheet = workbook.Worksheets[0];

        // กำหนดช่วงที่จะส่งออก (A1 ถึง D10)
        Range range = worksheet.Cells.CreateRange("A1", "D10");

        // ตั้งค่าพื้นที่พิมพ์เป็นช่วงนี้
        worksheet.PageSetup.PrintArea = range.RefersTo;

        // ตั้งค่าตัวเลือกส่งออกภาพ
        ImageOrPrintOptions options = new ImageOrPrintOptions
        {
            ImageType = ImageType.Png,
            HorizontalResolution = 200,
            VerticalResolution = 200,
            OnePagePerSheet = true
        };

        // เรนเดอร์เฉพาะช่วงที่กำหนด
        SheetRender renderer = new SheetRender(worksheet, options);

        // ส่งออกเป็นภาพ
        renderer.ToImage(0, "range_output.png");

        Console.WriteLine("ส่งออกรอบเซลล์สำเร็จเป็นภาพแล้ว.");
    }
}

เคล็ดลับการแก้ปัญหา

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