C#でExcelワークブック全体を画像に変換する方法

C#でExcelワークブック全体を画像に変換する方法

Excelファイルを画像としてレンダリングすることは、ウェブページ、ドキュメント、またはレポートにスプレッドシートを埋め込む際に不可欠です。この記事では、Aspose.Cells for .NETを使用して、Excelワークブック全体を高品質の画像形式に変換する方法を示します。

ワークブックを画像に変換する理由

  • Excelファイルのプレビューを生成
  • スプレッドシートを画像形式でアーカイブ
  • レポートや印刷ワークフローにスプレッドシートの内容を埋め込む
  • ネイティブのExcel表示をサポートしていないアプリでスプレッドシートを表示

ステップバイステップの実装

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

NuGetを使用してプロジェクトにAspose.Cellsを追加します:

dotnet add package Aspose.Cells

ステップ 2: Excelファイルをロード

Workbook workbook = new Workbook("Book1.xlsx");

ステップ 3: 画像オプションを設定

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

これらの設定は出力形式と解像度を制御します。さらに設定できます:

  • Transparent 背景用
  • OnlyArea マージンを除外
  • PrintingPageType 含める内容を指定

ステップ 4: ワークブックをレンダリング

WorkbookRender renderer = new WorkbookRender(workbook, options);

ステップ 5: 各ページを画像に変換

ページをループして各ページをエクスポートします:

for (int i = 0; i < renderer.PageCount; i++)
{
    string fileName = $"workbook_page_{i + 1}.png";
    renderer.ToImage(i, fileName);
}

これにより、現在の印刷レイアウトに基づいて論理ページごとに1つの画像が生成されます。

ステップ 6: 画像を保存

上記のコードは、定義された名前を使用して各画像ファイルをディスクに保存します。

// 出力:
// workbook_page_1.png
// workbook_page_2.png
// ...

ステップ 7: オプションの強化

画像レンダリングをさらに微調整できます:

// 例:グリッドラインを表示
options.ShowGridLines = true;

// 例:全シートの内容を1ページにレンダリング
options.AllColumnsInOnePagePerSheet = true;

ベストプラクティス

  • 印刷品質の画像には高解像度(200 dpi以上)を使用します。
  • 幅広のシートにはAllColumnsInOnePagePerSheetを有効にします。
  • プレゼンテーション用に出力をPDFまたは画像ギャラリーにまとめます。

よくある問題と解決策

問題解決策
出力画像が空白ワークブックがロードされており、表示可能なデータが含まれていることを確認
画像が切れているOnePagePerSheet = trueを設定するか、ページスケーリングを調整
低品質の出力HorizontalResolutionVerticalResolutionを増加させる
 日本語