如何在 C# 中将工作表转换为图像

如何在 C# 中将工作表转换为图像

导出单个 Excel 工作表为图像格式(例如 PNG、JPEG)在生成预览、导出图表或共享只读的电子表格内容可视化表示时非常有用。本指南将向您展示如何使用 Aspose.Cells for .NET 将 Excel 工作簿中的一个工作表转换为图像。

用例

  • 生成特定工作表的预览
  • 导出用于电子邮件或文档的格式化报告
  • 在网页或 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
 中文