XLTm を EMF に変換する方法

XLTm ファイルを EMF 画像に変換する方法

Sheetize はシンプルで高性能な API を提供し、Excel のマクロ有効テンプレート(.xltm)を鮮明な EMF(拡張メタファイル)画像に変換できます。スケーラブルなグラフィックの生成や、ドキュメントへのブックプレビュー埋め込み、元のスプレッドシートデータを公開せずにベクターベースのレポートを作成したいときに最適です。

Sheetize を使うメリット(XLTm → EMF 変換)

  • 完全な忠実度 – セル書式、チャート、埋め込み画像を保持しつつ、拡大縮小しても劣化しないベクタ画像を生成します。
  • 高速・スケーラブル – .NET 用に最適化され、Windows、macOS、Linux で動作します。
  • 解像度カスタマイズ可能 – DPI やスケール係数を設定して、必要な精度に合わせられます。
  • 依存関係ゼロ – Office のインストールや外部ツールは不要です。

使い始める手順

NuGet から Sheetize.ImageConverter パッケージをプロジェクトに追加し、ImageConverter.Process メソッドを呼び出すだけです。

C# サンプルコード

using Sheetize;

var loadOptions = new LoadOptions
{
    // 変換元 XLTm ファイルへのパス
    InputFile = @"D:\Templates\InvoiceTemplate.xltm"
};

var saveOptions = new ImageSaveOptions
{
    // 出力先ファイル。拡張子が .emf なので EMF 形式が選択されます
    OutputFile = @"D:\Images\InvoiceTemplate.emf",

    // 任意設定: 画像解像度(DPI)。EMF はベクタですが、DPI はデフォルトサイズに影響します
    HorizontalResolution = 300,
    VerticalResolution = 300,

    // 任意設定: スケール係数(1.0 = 100%)
    // ScaleFactor = 1.0
};

ImageConverter.Process(loadOptions, saveOptions);

上記のコードは InvoiceTemplate.xltm を読み込み、指定した解像度で InvoiceTemplate.emf として書き出します(スケール係数は省略可能)。

EMF 出力の主なオプション

  • HorizontalResolution / VerticalResolution – 基準 DPI を指定します。数値が大きいほど、スケーリング前のデフォルトサイズが大きくなります。
  • ScaleFactor – 生成される EMF の全体サイズを倍率で調整します(例: 2.0 でサイズが 2 倍)。
  • BackgroundColor – ワークブックに透過領域がある場合の背景色を設定できます。

ベストプラクティス

  1. 印刷用途 なら 300 DPI 以上を推奨。画面プレビューだけなら低めでも問題ありません。
  2. 生成された画像が目的のアプリケーションで小さすぎる/大きすぎる場合は ScaleFactor で調整してください。
  3. EMF をベクタ画像ビューア(Inkscape や Windows エクスプローラなど)で開き、全要素が正しく描画されているか確認しましょう。
 日本語