Excel ファイルは通常、数値やデータを格納するために使用されますが、ファイルに関連する画像が含まれている場合もあります。Excel ワークシートに画像を挿入した後、別の場所で使用するために画像を抽出したり、新しい画像に置き換えたり、ファイルを簡素化するために画像を削除したりする必要があるかもしれません。この記事では、C# で Spire.XLS for .NET を使用して、Excel ファイルからプログラムで画像を抽出、置換、削除する方法について説明します。
Spire.XLS for .NET をインストールします
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
C# で Excel ファイルから画像を抽出する
Spire.XLS for .NET を使用すると、Excel ワークシート内のすべての画像を一括で抽出できます。以下の手順で詳細を説明します。
- Workbook インスタンスを作成します。
- Workbook.LoadFromFile() メソッドを使用して、Excel ファイルを読み込みます。
- Workbook.Worksheets[] プロパティを使用して、特定のワークシートを取得します。
- Worksheet.Pictures プロパティを使い、ワークシート内のすべての画像をループ処理します。
- ExcelPicture.Picture.Save() メソッドを使って、画像を抽出して保存します。
- C#
using Spire.Xls;
namespace ExtractImages
{
class Program
{
static void Main(string[] args)
{
//ワークブックのインスタンスを作成
Workbook workbook = new Workbook();
//サンプルのExcelドキュメントを読み込む
workbook.LoadFromFile("Sample.xlsx");
//最初のワークシートを取得
Worksheet sheet = workbook.Worksheets[0];
//ワークシート内のすべての画像を取得
for (int i = sheet.Pictures.Count - 1; i >= 0; i--)
{
ExcelPicture picture = sheet.Pictures[i];
//画像を抽出
picture.Picture.Save(string.Format("Images/image_{0}.png", i));
}
workbook.Dispose();
}
}
}
C# で Excel ファイル内の画像を置換する
以下は、Spire.XLS for .NET を使用して画像を別の画像に置き換える詳細な手順です。
- Workbook オブジェクトを作成します。
- Workbook.LoadFromFile() メソッドを使用して Excel ファイルを読み込みます。
- Workbook.Worksheets[0] プロパティを使用して、最初のワークシートを取得します。
- Worksheet.Pictures[0] プロパティを使用して、最初のワークシートから最初の画像を取得します。
- Image.FromFile() メソッドを使用して、指定されたファイルから画像をロードし、ExcelPicture.Picture プロパティの新しい値として設定します。そうすることで、元の画像が新しい画像に置き換えられます。
- Workbook.SaveToFile() メソッドを使用してワークブックを保存します。
- C#
using Spire.Xls;
using Spire.Xls.Collections;
using System.Drawing;
namespace ReplacePictureinExcel
{
class Program
{
static void Main(string[] args)
{
//ワークブックのインスタンスを作成
Workbook workbook = new Workbook();
//Excelファイルを読み込む
workbook.LoadFromFile("Sample.xlsx");
//最初のシートを取得
Worksheet sheet = workbook.Worksheets[0];
//画像コレクションを取得
PicturesCollection pictureCollection = sheet.Pictures;
//コレクションから最初の画像を取得
ExcelPicture excelPicture = pictureCollection[0];
//指定されたファイルから画像を作成
excelPicture.Picture = Image.FromFile("keyboard.jpg");
//ドキュメントを保存
workbook.SaveToFile("output/Excelの画像を置き換え.xlsx", ExcelVersion.Version2013);
workbook.Dispose();
}
}
}
C# で Excel ファイル内の画像を削除する
Excel ワークシートから画像を削除するには、Worksheet.Pictures.Remove() メソッドを使用できます。以下は手順の詳細です。
- Workbook インスタンスを作成します。
- Workbook.LoadFromFile() メソッドを使用して、Excel ファイルを読み込みます。
- Workbook.Worksheets[] プロパティを使って、特定のワークシートを取得します。
- Worksheet.Pictures.Remove() メソッドを使用して、ワークシート内のすべての画像をループしながら削除します。
- Workbook.SaveToFile() メソッドを使用して、ワークブックを保存します。
- C#
using Spire.Xls;
namespace DeleteImages
{
class Program
{
static void Main(string[] args)
{
//ワークブックのインスタンスを作成
Workbook workbook = new Workbook();
//サンプルのExcelドキュメントを読み込む
workbook.LoadFromFile("Sample.xlsx");
//最初のワークシートを取得
Worksheet sheet = workbook.Worksheets[0];
//ワークシートからすべての画像を削除
for (int i = sheet.Pictures.Count - 1; i >= 0; i--)
{
sheet.Pictures[i].Remove();
}
//結果のドキュメントを保存
workbook.SaveToFile("output/Excelから画像を削除.xlsx");
workbook.Dispose();
}
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。