C#でExcelをサムネイル画像に変換する方法

C#でExcelをサムネイル画像に変換する方法

ドキュメントプレビュー機能やコンテンツライブラリを使用する際、サムネイル画像はファイル全体を読み込むことなく、迅速な視覚的参照を提供します。このチュートリアルでは、Aspose.Cells for .NETを使用してExcelファイルからサムネイル画像を作成する方法を示します。

サムネイルを使用する理由

  • ドキュメントギャラリーのプレビューカードを作成
  • スプレッドシートレポートの視覚的ダッシュボードを構築
  • 検索やファイル管理ツールに軽量なビジュアルを追加

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

ステップ 1: Aspose.Cellsをインストール

dotnet add package Aspose.Cells

ステップ 2: ワークブックを読み込む

Workbook workbook = new Workbook("FinanceReport.xlsx");
Worksheet sheet = workbook.Worksheets[0];

ステップ 3: サムネイルレンダリングオプションを設定

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

ステップ 4: 最初のワークシートを画像としてレンダリング

SheetRender renderer = new SheetRender(sheet, options);
renderer.ToImage(0, "preview_temp.png");

ステップ 5: 画像をサムネイルサイズにリサイズ(オプション)

画像をリサイズするためにグラフィックスライブラリ(例: System.Drawing)を使用できます:

using System.Drawing;

Bitmap original = new Bitmap("preview_temp.png");
Bitmap thumbnail = new Bitmap(original, new Size(160, 120));
thumbnail.Save("thumbnail.png");

ステップ 6: サムネイル画像を使用

これで、プレビューに適した軽量のサムネイルが作成されました。


完全なサンプルコード

using System;
using System.Drawing;
using Aspose.Cells;
using Aspose.Cells.Rendering;

class Program
{
    static void Main()
    {
        // Excelファイルを読み込む
        Workbook workbook = new Workbook("FinanceReport.xlsx");
        Worksheet sheet = workbook.Worksheets[0];

        // 低解像度オプションを設定
        ImageOrPrintOptions options = new ImageOrPrintOptions
        {
            ImageType = ImageType.Png,
            HorizontalResolution = 96,
            VerticalResolution = 96,
            OnePagePerSheet = true
        };

        // 一時画像としてシート全体をレンダリング
        SheetRender renderer = new SheetRender(sheet, options);
        renderer.ToImage(0, "preview_temp.png");

        // サムネイルにリサイズ
        using (Bitmap original = new Bitmap("preview_temp.png"))
        {
            Bitmap thumbnail = new Bitmap(original, new Size(160, 120));
            thumbnail.Save("thumbnail.png");
        }

        Console.WriteLine("Excelワークシートからサムネイル画像が作成されました。");
    }
}

ベストプラクティス

推奨事項目的
OnePagePerSheet = true を使用画像のページ分割を防ぐ
解像度を下げるサムネイル生成を高速化
レンダリング後に画像をリサイズスケーリングと品質の制御を向上
 日本語