C#でセル範囲を画像に変換する方法

C#でセル範囲を画像に変換する方法

必要なスプレッドシートの一部を視覚的に抽出する必要がありますか?セル範囲を画像にエクスポートすることは、サムネイル、プレビュー、または部分的なレポートを生成するのに便利です。このガイドでは、Aspose.Cells for .NETを使用して、Excelで定義されたセル範囲を高品質の画像に変換する方法を説明します。

使用例

  • 価格表や製品カタログをエクスポートする
  • 完全なファイルを公開せずにワークシートの一部を共有する
  • ダッシュボードやウィジェット用の動的範囲をキャプチャする

ステップバイステップガイド

ステップ 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を設定する
ぼやけたテキスト解像度設定を上げる
 日本語