如何在C#中将单元格范围转换为图像

如何在C#中将单元格范围转换为图像

需要视觉地提取一个分布表的部分吗? 将细胞范围导出到图像中是有用的,以产生细节、预览或部分报告。 此指南显示如何将 Excel 中的定义细胞范围转换为高品质的图像,使用 Aspose.Cells for .NET

用例

  • 出口价格表或产品目录
  • 分享工作表的一部分,而不显示完整的文件
  • 捕捉Dynamic Range for Dashboards 或 Widgets

步骤指南

步骤1:安装 Aspose.Cells

dotnet add package Aspose.Cells

步骤2:下载工作簿和工作表

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

步骤3:定义出口范围

// Specify a range like 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 和 Render 范围

// You can use SheetRender with printing bounds if needed
SheetRender renderer = new SheetRender(worksheet, options);

步骤6:以图像为出口范围

Aspose.Cells 没有直接的 RangeRender 类,但您仍然可以通过将 rendering 集中到只选择的范围来剪辑图像:

// Set print area manually for the worksheet
worksheet.PageSetup.PrintArea = "A1:D10";

// Recreate SheetRender with print settings now applied
renderer = new SheetRender(worksheet, options);

// Render and export
renderer.ToImage(0, "range_output.png");

步骤7:保存和验证输出

您现在将获得所选择的 Excel 范围的清洁积累图像。

完整的例子代码

using System;
using Aspose.Cells;

class Program
{
    static void Main()
    {
        // Load the workbook
        Workbook workbook = new Workbook("DataSet.xlsx");

        // Access the first worksheet
        Worksheet worksheet = workbook.Worksheets[0];

        // Define range to export (A1 to D10)
        Range range = worksheet.Cells.CreateRange("A1", "D10");

        // Set the print area to this range
        worksheet.PageSetup.PrintArea = range.RefersTo;

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

        // Render only the specified range
        SheetRender renderer = new SheetRender(worksheet, options);

        // Export to image
        renderer.ToImage(0, "range_output.png");

        Console.WriteLine("Cell range exported successfully as image.");
    }
}

麻烦解决提示

问题解决方案
图像包含额外的行/列确保印刷区域严格定义
没有正确挖掘的范围Set OnePagePerSheet = true
布鲁里文本提高分辨率设置
 中文