[]
本製品では、ToImage メソッドを使用して、ワークシート、指定された範囲、様々な図形を画像に変換することができます。そして、変換された画像を Word、PDF、PowerPoint などの他のドキュメントで直接使用することができます。変換に対応している画像形式は、PNG、JPG/JPEG、SVG、GIF です。
また、本製品は ImageSaveOptions クラスにて様々なプロパティを提供しており、ワークシート/範囲/図形を各インタフェースの ToImage メソッドを使用して画像ファイルにエクスポートする際に、画像の修正や調整をすることができます。
以下は、ImageSaveOptions クラスのプロパティと、それらが使用できる範囲です。
プロパティ | ワークシート | 範囲 | 図形 | 説明 |
|---|---|---|---|---|
〇 | 〇 | 〇 | エクスポートされる画像ファイルのスケールを取得または設定します。 | |
〇 | 〇 | 〇 | エクスポートされる jpeg 画像ファイルの DPI を取得または設定します。 | |
〇 | 〇 | 〇 | エクスポートされる画像ファイルの背景色を取得または設定します。 | |
〇 | 〇 | × | エクスポートされる画像ファイルに行見出しを表示するかどうかを取得または設定します。 | |
〇 | 〇 | × | エクスポートされる画像ファイルに列見出しを表示するかどうかを取得または設定します。 | |
〇 | 〇 | × | エクスポートされる画像ファイルにグリッド線を表示するかどうかを取得または設定します。 | |
〇 | 〇 | × | エクスポートされる画像ファイルに表示するグリッド線の色を取得または設定します。 | |
〇 | 〇 | × | エクスポートされる画像ファイルに描画オブジェクト (チャート、図形、画像) を表示するかどうかを取得または設定します。 | |
〇 | 〇 | 〇 | 白黒画像としてエクスポートするかどうかを取得または設定します。 | |
〇 | 〇 | × | 自動的に結合されたセルを含めるかどうかを示します。既定値は false です。 |
!type=note
メモ: GIF 形式は画像の透明度をサポートしていないため、透明度のある画像へ変換するには、PNG 形式を使用する必要があります。
ワークシートを画像に変換するには、IWorksheetインタフェースの ToImage メソッドを使用します。変換された画像は、セル「A1」とデータまたは図形が存在する最後のセルで囲まれたワークシートの矩形領域を表示します。例えば、ワークシートの範囲「D5:F9」に図形やデータがある場合、ワークシートを変換した画像は、範囲「A1:F9」の矩形領域を表示します。
なお、空白のワークシートは画像に変換することはできません。
次のサンプルコードは、ImageSaveOptionsを指定または指定せずにワークシートを画像に変換する方法を示しています。サンプルコードでは、ImageSaveOptionsにて、画像のスケール、行/列見出しの表示、描画オブジェクトの表示、グリッド線の表示・色、画像背景色の設定を変更しています。
// 新しいワークブックを作成します
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.Worksheets[0];
// データを追加します
worksheet.Range["A1"].Value = "売上レポート";
worksheet.Range["A1"].Font.Color = Color.FromArgb(56, 93, 171);
worksheet.Range["A1"].Font.Size = 24;
worksheet.Range["A1"].Font.Bold = true;
worksheet.Range["A3:E7"].Value = new object[,]{
{"日付","商品","顧客","金額","展示"},
{"2021/1/1","Bose 785593-0050","Fabrikam, Inc.","$1,886.00","1"},
{"2021/1/3","Canon EOS 1500D","Alpine Ski House","$4,022.00",""},
{"2021/1/4","Haier 394L 4Star","Coho Winery","$8,144.00",""},
{"2021/1/7","IFB 6.5 Kg FullyAuto","Southridge Video","$8,002.00","1"}};
// ImageSaveOptions をインスタンス化し、プロパティを設定します
ImageSaveOptions options = new ImageSaveOptions();
options.ScaleX = 3.0;
options.ScaleY = 2.0;
options.ShowRowHeadings = true;
options.ShowColumnHeadings = false;
options.ShowDrawingObjects = true;
options.BackgroundColor = Color.FromArgb(226, 231, 243);
options.ShowGridlines = true;
options.GridlineColor = Color.FromArgb(145, 167, 214);
// ImageSaveOptions を指定せずにワークシートを画像に変換します
worksheet.ToImage("WorksheetToImage.png");
// ImageSaveOptions を指定してワークシートを画像に変換します
worksheet.ToImage("WorksheetToImage_UsingImageSaveOptions.png", options);次のサンプルコードは、既存のファイルを読み込み、ImageSaveOptionsを指定または指定せずにワークシートを画像に変換する方法を示しています。
// 新しいワークブックを作成します
var workbook = new GrapeCity.Documents.Excel.Workbook();
FileStream fileStream = new FileStream("Workbook.xlsx", FileMode.Open);
// xlsx ファイルを開きます
workbook.Open(fileStream);
IWorksheet worksheet = workbook.Worksheets[0];
// ImageSaveOptions をインスタンス化し、プロパティを設定します
ImageSaveOptions options = new ImageSaveOptions();
options.ScaleX = 3.0;
options.ScaleY = 2.0;
options.ShowRowHeadings = true;
options.ShowColumnHeadings = false;
options.ShowDrawingObjects = true;
options.BackgroundColor = Color.FromArgb(226, 231, 243);
options.ShowGridlines = true;
options.GridlineColor = Color.FromArgb(145, 167, 214);
// PNG ファイルストリームを作成します
FileStream outputStream = new FileStream("ConvertWorksheetToImage.png", FileMode.Create);
// ImageSaveOptions を指定せずにワークシートを画像に変換します
worksheet.ToImage(outputStream, ImageType.PNG);
// 画像ストリームを閉じます
outputStream.Close();
// 別の PNG ファイルストリームを作成します
FileStream outputStreamoptions = new FileStream("ConvertWorksheetToImage_UsingImageSaveOptions.png", FileMode.Create);
// ImageSaveOptions を指定してワークシートを画像に変換します
worksheet.ToImage(outputStreamoptions, ImageType.PNG, options);
// 画像ストリームを閉じます
outputStreamoptions.Close();ワークシート内の特定の範囲を画像に変換するにIRangeは、IRangeインタフェースの ToImage メソッドを使用します。変換された画像は、指定された範囲で囲まれたワークシートの矩形領域を表示します。
次のサンプルコードは、ImageSaveOptionsを指定または指定せずに特定の範囲を画像に変換する方法を示しています。サンプルコードでは、ImageSaveOptions にて、画像のスケール、行/列見出しの表示、描画オブジェクトの表示、グリッド線の表示・色、画像背景色の設定を変更しています。
// 新しいワークブックを作成します
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.Worksheets[0];
// データを追加します
worksheet.Range["D10:F10"].Value = new string[] { "デバイス", "数量", "単価" };
worksheet.Range["D11:F14"].Value = new object[,]{
{ "T540p", 12, 9850 },
{ "T570", 5, 7460 },
{ "Y460", 6, 5400 },
{ "Y460F", 8, 6240 } };
IRange range = worksheet.Range["D10:F14"];
// ImageSaveOptions をインスタンス化し、プロパティを設定します
ImageSaveOptions options = new ImageSaveOptions();
options.ScaleX = 3.0;
options.ScaleY = 2.0;
options.ShowRowHeadings = true;
options.ShowColumnHeadings = false;
options.ShowDrawingObjects = true;
options.BackgroundColor = Color.FromArgb(226, 231, 243);
options.ShowGridlines = true;
options.GridlineColor = Color.FromArgb(145, 167, 214);
// ImageSaveOptions を指定せずに範囲を画像に変換します
range.ToImage("RangeToImage.png");
// ImageSaveOptions を指定して範囲を画像に変換します
range.ToImage("RangeToImage_UsingImageSaveOptions.png", options);次のサンプルコードは、既存のファイルを読み込み、ImageSaveOptions を指定または指定せずに特定の範囲を画像に変換する方法を示しています。
// 新しいワークブックを作成します
var workbook = new GrapeCity.Documents.Excel.Workbook();
FileStream fileStream = new FileStream("RangeWorkbook.xlsx", FileMode.Open);
// セル範囲にデータを含む xlsx ファイルを開きます
workbook.Open(fileStream);
IWorksheet worksheet = workbook.Worksheets[0];
// ImageSaveOptions をインスタンス化し、プロパティを設定します
ImageSaveOptions options = new ImageSaveOptions();
options.ScaleX = 3.0;
options.ScaleY = 2.0;
options.ShowRowHeadings = true;
options.ShowColumnHeadings = false;
options.ShowDrawingObjects = true;
options.BackgroundColor = Color.FromArgb(226, 231, 243);
options.ShowGridlines = true;
options.GridlineColor = Color.FromArgb(145, 167, 214);
// PNG ファイルストリームを作成します
FileStream outputStream = new FileStream("ConvertRangeToImage.png", FileMode.Create);
// ImageSaveOptions を指定せずに範囲を画像に変換します
worksheet.Range["A1:C5"].ToImage(outputStream, ImageType.PNG);
// 画像ストリームを閉じます
outputStream.Close();
// 別の PNG ファイルストリームを作成します
FileStream outputStreamoptions = new FileStream("ConvertRangeToImage_UsingImageSaveOptions.png", FileMode.Create);
// ImageSaveOptions を指定して範囲を画像に変換します
worksheet.Range["A1:C5"].ToImage(outputStreamoptions, ImageType.PNG, options);
// 画像ストリームを閉じます
outputStreamoptions.Close();図形を画像に変換するには、IShape インタフェースの ToImage メソッドを使用します。変換できる図形は、チャート、画像、スライサー、オートシェイプなどがあります。変換された画像は、図形で囲まれたワークシートの矩形領域を表示します。
次のサンプルコードは、ImageSaveOptions を指定または指定せずにオートシェイプを画像に変換する方法を示しています。サンプルコードでは、ImageSaveOptions にて、画像のスケールおよび背景色の設定を変更しています。
// 新しいワークブックを作成します
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.Worksheets[0];
// 楕円を追加します
IShape shape = worksheet.Shapes.AddShape(AutoShapeType.Oval, 20, 20, 200, 100);
// ImageSaveOptions をインスタンス化し、プロパティを設定します
ImageSaveOptions options = new ImageSaveOptions();
options.ScaleX = 3.0;
options.ScaleY = 2.0;
options.BackgroundColor = Color.Lime;
// ImageSaveOptions を指定せずに図形を画像に変換します
shape.ToImage("ShapeToImage.png");
// ImageSaveOptions を指定して図形を画像に変換します
shape.ToImage("ShapeToImage_UsingImageSaveOptions.png", options);次のサンプルコードは、既存のファイルを読み込み、ImageSaveOptionsを指定または指定せずにオートシェイプを画像に変換する方法を示しています。
// 新しいワークブックを作成します
var workbook = new GrapeCity.Documents.Excel.Workbook();
FileStream fileStream = new FileStream("ShapeWorkbook.xlsx", FileMode.Open);
// グループシェイプを含む xlsx ファイルを開きます
workbook.Open(fileStream);
IWorksheet worksheet = workbook.Worksheets[0];
// ImageSaveOptions をインスタンス化し、プロパティを設定します
ImageSaveOptions options = new ImageSaveOptions();
options.ScaleX = 3.0;
options.ScaleY = 2.0;
options.BackgroundColor = Color.Lime;
// PNG ファイルストリームを作成します
FileStream outputStream = new FileStream("ConvertShapeToImage.png", FileMode.Create);
// ImageSaveOptions を指定せずに図形を画像に変換します
worksheet.Shapes[0].ToImage(outputStream, ImageType.PNG);
// 画像ストリームを閉じます
outputStream.Close();
// 別の PNG ファイルストリームを作成します
FileStream outputStreamoptions = new FileStream("ConvertShapeToImage.png", FileMode.Create);
// ImageSaveOptions を指定して図形を画像に変換します
worksheet.Shapes[0].ToImage(outputStreamoptions, ImageType.PNG, options);
// 画像ストリームを閉じます
outputStreamoptions.Close();次のサンプルコードは、チャートを画像に変換する方法を示しています。
// 新しいワークブックを作成します
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.Worksheets[0];
// チャートのデータを準備します
worksheet.Range["A1:D4"].Value = new object[,]
{
{null, "Q1", "Q2", "Q3"},
{"Mobile Phones", 1330, 2345, 3493},
{"Laptops", 2032, 3632, 2197},
{"Tablets", 6233, 3270, 2030}
};
worksheet.Range["A:D"].Columns.AutoFit();
// 面チャートを追加します
IShape shape = worksheet.Shapes.AddChart(ChartType.Area, 250, 20, 360, 230);
// SeriesCollection に系列を追加します
shape.Chart.SeriesCollection.Add(worksheet.Range["A1:D4"], RowCol.Columns, true, true);
// チャートタイトルを設定します
shape.Chart.ChartTitle.TextFrame.TextRange.Paragraphs.Add("Annual Sales Record");
// チャートを画像に変換します
shape.ToImage("ConvertChartToImage.png");次のサンプルコードは、既存のファイルを読み込み、チャートを画像に変換する方法を示しています。
// PNG ファイルストリームを作成します
FileStream outputStream = new FileStream("ConvertChartToImage.png", FileMode.Create);
// 新しいワークブックを作成します
var workbook = new GrapeCity.Documents.Excel.Workbook();
FileStream fileStream = new FileStream("ScatterChart.xlsx", FileMode.Open);
// チャートを含む xlsx ファイルを開きます
workbook.Open(fileStream);
IWorksheet worksheet = workbook.Worksheets[0];
// チャートを画像に変換します
worksheet.Shapes[0].ToImage(outputStream, ImageType.PNG);
// 画像ストリームを閉じます
outputStream.Close();制限事項
ToImage メソッドは、EMF および WMF 画像形式での画像のエクスポートをサポートしていません。
SVG 形式のファイルにおいてパターン塗りつぶしを使用した場合、PDF ファイルと比べて正しくレンダリングされないことがございます。これは SVG 形式自体がパターン塗りつぶしを完全にはサポートしていないためです。