Excel の図形は、テキストボックスや画像などのオブジェクトを含む、ワークシートを装飾または最適化できる視覚要素として機能します。図形を挿入することで、データをより直感的に表示し、重要な情報を強調し、スプレッドシートの可読性を高めることができます。図形内の内容を独立して扱う必要がある場合は、プログラムを使って図形から抽出してさらなる処理を行うことができます。この記事では、Spire.XLS for .NET を使用して、C# および VB.NET で Excel の図形からテキストと画像を抽出する方法を紹介します。
Spire.XLS for .NET をインストールします
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
Excel の図形からテキストを抽出する
Spire.XLS for .NET を使用すると、ユーザーは IPrstGeomShape.Text プロパティを使用して図形からテキストを抽出し、新しい .txt ファイルに書き込むことができます。以下は詳細な手順です。
- Workbook オブジェクトを作成します。
- Workbook.LoadFromFile() メソッドを使用して Excel ファイルを読み込みます。
- 最初のワークシートを Workbook.Worksheets[] プロパティで取得します。
- 2 番目の図形は Worksheet.PrstGeomShapes[] プロパティで取得します。
- 2 番目の図形からテキストを抽出し、文字列変数に保存します。
- StringBuilder オブジェクトを作成し、抽出したテキストを追加します。
- File.WriteAllText() メソッドを使用して、テキストを .txt ファイルに書き込みます。
- C#
- VB.NET
using System.IO;
using System.Text;
using Spire.Xls;
using Spire.Xls.Core;
namespace Extracttext
{
class Program
{
static void Main(string[] args)
{
//Workbookオブジェクトを作成する
Workbook workbook = new Workbook();
//Excelファイルをロードする
workbook.LoadFromFile("sample.xlsx");
//最初のシートを取得する
Worksheet sheet = workbook.Worksheets[0];
//2番目の図形を取得してテキストを抽出する
IPrstGeomShape shape1 = sheet.PrstGeomShapes[1];
string s = shape1.Text;
//StringBuilderオブジェクトに抽出されたテキストをアタッチする
StringBuilder sb = new StringBuilder();
sb.AppendLine(s);
//テキストを.txtファイルに書き込む
File.WriteAllText("ShapeText.txt", sb.ToString());
workbook.Dispose();
}
}
}
Imports System.IO
Imports System.Text
Imports Spire.Xls
Imports Spire.Xls.Core
Namespace Extracttext
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)
'2番目の図形を取得してテキストを抽出する
Dim shape1 As IPrstGeomShape = sheet.PrstGeomShapes(1)
Dim s As String = shape1.Text
'StringBuilderオブジェクトに抽出されたテキストをアタッチする
Dim sb As StringBuilder = New StringBuilder
sb.AppendLine(s)
'テキストを.txtファイルに書き込む
File.WriteAllText("ShapeText.txt", sb.ToString)
workbook.Dispose
End Sub
End Class
End Namespace
Excel の図形から画像を抽出する
さらに、Spire.XLS for .NET では、IPrstGeomShape.Fill.Picture プロパティを使用して画像を抽出し、フォルダーに保存することもできます。関連する手順は次のとおりです。
- Workbook オブジェクトを作成します。
- Workbook.LoadFromFile() メソッドを使用して Excel ファイルを読み込みます。
- 最初のワークシートを Workbook.Worksheets[] プロパティで取得します。
- 最初の図形は Worksheet.PrstGeomShapes[] プロパティで取得します。
- Fill と Picture プロパティを使用して、最初の図形から 画像を抽出します。
- Image.Save() メソッドを使用して、抽出した画像をフォルダーに保存します。
- C#
- VB.NET
using System.Drawing;
using System.Drawing.Imaging;
using Spire.Xls;
using Spire.Xls.Core;
namespace Extractimage
{
class Program
{
static void Main(string[] args)
{
//Workbookオブジェクトを作成する
Workbook workbook = new Workbook();
//Excelファイルをロードする
workbook.LoadFromFile("sample.xlsx");
//最初のシートを取得する
Worksheet sheet = workbook.Worksheets[0];
//最初の図形を取得して画像を抽出する
IPrstGeomShape shape2 = sheet.PrstGeomShapes[0];
Image image = shape2.Fill.Picture;
//抽出した画像をフォルダに保存する
image.Save(@"Image\ShapeImage.png", ImageFormat.Png);
workbook.Dispose();
}
}
}
Imports System.Drawing
Imports System.Drawing.Imaging
Imports Spire.Xls
Imports Spire.Xls.Core
Namespace Extractimage
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)
'最初の図形を取得して画像を抽出する
Dim shape2 As IPrstGeomShape = sheet.PrstGeomShapes(0)
Dim image As Image = shape2.Fill.Picture
'抽出した画像をフォルダに保存する
image.Save("Image\ShapeImage.png", ImageFormat.Png)
workbook.Dispose
End Sub
End Class
End Namespace
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。