วิธีการแปลงช่วงเซลล์เป็นภาพใน 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 |
ข้อความเบลอ | เพิ่มการตั้งค่าความละเอียด |