C#とVB.NETでExcelから画像への変換方法

## はじめに
Excelはデータ、情報などを保存、編集できる非常に実用的なドキュメントフォーマットです。Excelドキュメントの表やデータをWordやPPTドキュメントに貼り付けるには、Excelを画像に変換するのが良い選択です。また、画像に変換することで、他の人によって内容が変更されないようにすることもできます。次に、[Free Spire.XLS for .NET](https://www.e-iceblue.com/Introduce/free-xls-component.html)を使ってC#/VB.NETプログラムでExcelを画像に変換する方法を示します。

## ツール
* Visual Studio 2022
* [Free Spire.XLS for .NET](https://www.e-iceblue.com/Introduce/free-xls-component.html)

このライブラリは、無料でExcelファイルを作成、編集、変換することができますが、ページ数の制限があります。または、有料版の製品の[無料トライアル](https://www.e-iceblue.com/TemLicense.html)を申し込むこともできます。
**有料版** :[Spire.XLS for .NET](https://www.e-iceblue.com/Introduce/excel-for-net-introduce.html)

## インストール方法
1.[Free Spire.XLS for .NET](https://www.e-iceblue.com/Download/download-excel-for-net-free.html)をダウンロードします。
2.Visual Studioで新しいプロジェクトを作成します。
3.「Solution Explorer」>「References」を右クリックし、「Add Reference」>「Browse」を選択します。
4.BINフォルダ内のdllファイルを見つけて、「OK」をクリックします。

## ワークシート全体を画像に変換する
以下は詳細な手順です。
* **Workbook** インスタンスを作成します。
* **Workbook.LoadFromFile()** メソッドを使用して Excel ドキュメントをロードします。
* **Workbook.Worksheets[]** プロパティを使用して、特定のワークシートを取得します。
* **Worksheet.SaveToImage()** メソッドを使用して、ワークシートを画像として保存します。

**C#**
```c#
using Spire.Xls;
namespace Xls2Image
{
    class Program
    {
        static void Main(string[] args)
        {
            //Workbook インスタンスを作成する
            Workbook workbook = new Workbook();

            //Excel サンプルドキュメントをロードする
            workbook.LoadFromFile(@"sample.xlsx");

            //最初のワークシートを取得する
            Worksheet sheet = workbook.Worksheets[0];

            //ワークシートを画像として保存する
            sheet.SaveToImage("result1.jpg");
        }
    }
}
```
**VB.NET**
```vb
Imports Spire.Xls
Namespace Xls2Image
    Class Program
        Shared  Sub Main(ByVal args() As String)
            'Workbook インスタンスを作成する
            Dim workbook As Workbook =  New Workbook() 
 
            'Excelサンプルドキュメントをロードする
            workbook.LoadFromFile("sample.xlsx")
 
            '最初のワークシートを取得する
            Dim sheet As Worksheet =  workbook.Worksheets(0) 
 
            'ワークシートを画像として保存する
            sheet.SaveToImage("result1.jpg")
        End Sub
    End Class
End Namespace
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811193/ca9ca636-821f-2927-be22-7733b0831ca2.png)
## 特定のセル範囲を画像に変換する
以下は詳細な手順です。
* **Workbook**インスタンスを作成します。
* **Workbook.LoadFromFile()** メソッドを使用して Excel ドキュメントをロードします。
* **Workbook.Worksheets[]** プロパティを使用して、特定のワークシートを取得します。
* セル範囲を指定し、**Worksheet.ToImage()** メソッドを使用して Image オブジェクトとして保存してから、**Image.Save()** メソッドを使用してオブジェクトを特定の画像形式で保存します。

**C#**
```c#
using Spire.Xls;
using System.Drawing.Imaging;

namespace SpecificCellsToImage
{

    class Program
    {
        static void Main(string[] args)
        {
            //Workbook インスタンスを作成する
            Workbook workbook = new Workbook();

            //Excel サンプルをロードする
            workbook.LoadFromFile(@"sample.xlsx");

            //最初のワークシートを取得する
            Worksheet sheet = workbook.Worksheets[0];

            //セル範囲を指定して、特定の画像形式で保存する
            sheet.ToImage(1, 1, 6, 5).Save("result2.png", ImageFormat.Png);
        }
    }
}
```
**VB.NET**
```vb
Imports Spire.Xls
Imports System.Drawing.Imaging

Namespace SpecificCellsToImage

    Friend Class Program
        Private Shared Sub Main(ByVal args As String())
            'Workbook インスタンスを作成する
            Dim workbook As Workbook = New Workbook()

            'Excel サンプルをロードする
            workbook.LoadFromFile("sample.xlsx")

            '最初のワークシートを取得する
            Dim sheet As Worksheet = workbook.Worksheets(0)

            'セル範囲を指定して、特定の画像形式で保存する
            sheet.ToImage(1, 1, 6, 5).Save("result2.png", ImageFormat.Png)
        End Sub
    End Class
End Namespace
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811193/379bfb72-6093-c3c8-fe27-a53518f053e5.png)