Excel は、データ分析や財務管理、予算などに広く使用される人気のあるスプレッドシートソフトウェアです。しかし、他のファイルに Excel ファイルを埋め込んだり、他の人と共有する場合、Excel 形式に互換性の問題が生じることがあります。そのような場合には、Excel をイメージに変換することが代替オプションとなります。この記事では、Spire.XLS for C++ を使用して C++ で Excel を画像に変換する方法について説明します。
Spire.XLS for C++ をインストールします
Spire.XLS for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。
Spire.XLS for C++ を C++ アプリケーションに統合する方法
C++ で Excel のワークシート全体を画像に変換する
Spire.XLS for C++ では、Worksheet->ToImage() メソッドを使用して特定のワークシートを画像に変換します。次に、Image->Save() メソッドを使用して画像を PNG、JPG、または BMP 形式で保存できます。以下が詳細な手順です。
- Workbook オブジェクトを作成します。
- Workbook->LoadFromFile() メソッドを使用してサンプルの Excel 文書を読み込みます。
- Workbook->GetWorksheets()->Get() メソッドを使用して、指定されたワークシートを取得します。
- Worksheet->ToImage() メソッドを使用してワークシートを画像に変換します。
- Worksheet->ToImage()->Save() メソッドを使用して画像を PNG ファイルとして保存します。
- C++
#include "Spire.Xls.o.h"
#include <iostream>
using namespace Spire::Xls;
int main() {
//入出力ファイルパスを指定する
std::wstring inputFile = L"sample.xlsx";
std::wstring outputFile = L"SheetToImage.png";
//Workbookオブジェクトを作成する
intrusive_ptr<Workbook> workbook = new Workbook();
//ディスクからExcel文書を読み込む
workbook->LoadFromFile(inputFile.c_str());
//最初のワークシートを取得する
intrusive_ptr<Worksheet> sheet = dynamic_pointer_cast<Worksheet>(workbook->GetWorksheets()->Get(0));
//画像をPNGファイルとして保存する
sheet->ToImage(sheet->GetFirstRow(), sheet->GetFirstColumn(), sheet->GetLastRow(), sheet->GetLastColumn())->Save(outputFile.c_str());
workbook->Dispose();
}
C++ で特定のセル範囲を画像に変換する
Spire.XLS for C++ では、Worksheet->ToImage(int firstRow, int firstColumn, int lastRow, int lastColumn) メソッドを使用して指定されたセル範囲を画像に変換することもできます。以下が詳細な手順です。
- Workbook オブジェクトを作成します。
- Workbook->LoadFromFile() メソッドを使用してサンプルの Excel 文書を読み込みます。
- Workbook->GetWorksheets()->Get() メソッドを使用して、指定されたワークシートを取得します。
- Worksheet->ToImage()->Save() メソッドを使用して、指定したセル範囲を特定の画像形式で保存します。
- C++
#include "Spire.Xls.o.h"
#include <iostream>
using namespace Spire::Xls;
int main() {
std::wstring inputFile = L"sample.xlsx";
std::wstring outputFile = L"Output";
//Workbookオブジェクトを作成する
intrusive_ptr<Workbook> workbook = new Workbook();
//ディスクからExcelドキュメントをロードする
workbook->LoadFromFile(inputFile.c_str());
//最初のシートを取得する
intrusive_ptr<Worksheet> sheet = dynamic_pointer_cast<Worksheet>(workbook->GetWorksheets()->Get(0));
//セル範囲を指定して特定の画像形式として保存する
sheet->ToImage(1, 1, 9, 6)->Save(L"Output//SpecificCellsToImage.png", ImageFormat::GetPng());
sheet->ToImage(1, 1, 9, 6)->Save(L"Output//SpecificCellsToImage.jpg", ImageFormat::GetJpeg());
sheet->ToImage(1, 1, 9, 6)->Save(L"Output//SpecificCellsToImage.bmp", ImageFormat::GetBmp());
//ファイルに保存する
workbook->Dispose();
}
C++ でワークシートを余白のない画像に変換する
ワークシートを直接画像に変換する場合、変換された画像の周りには余白があります。これらの余白を削除したい場合は、変換時にワークシートの左、右、上、下のマージンをゼロに設定することができます。以下が詳細な手順です。
- Workbook オブジェクトを作成します。
- Workbook->LoadFromFile() メソッドを使用してサンプルの Excel 文書を読み込みます。
- Workbook->GetWorksheets()->Get() メソッドを使用して、指定されたワークシートを取得します。
- Worksheet->GetPageSetup() メソッドを使用してページ設定オブジェクトを返し、PageSetup クラスのメソッドを使用してワークシートの左、右、上、下の余白を設定します。
- Worksheet->ToImage()->Save() メソッドを使用して、ワークシートを画像として保存します。
- C++
#include "Spire.Xls.o.h"
#include <iostream>
using namespace Spire::Xls;
int main() {
std::wstring inputFile =L"sample.xlsx";
std::wstring outputFile = L"ToImageWithoutWhiteSpace.png";
//Workbookオブジェクトを作成する
intrusive_ptr<Workbook> workbook = new Workbook();
//ディスクからExcelドキュメントをロードする
workbook->LoadFromFile(inputFile.c_str());
//最初のシートを取得する
intrusive_ptr<Worksheet> sheet = dynamic_pointer_cast<Worksheet>(workbook->GetWorksheets()->Get(0));
//マージンを0に設定して画像の余白を削除する
sheet->GetPageSetup()->SetLeftMargin(0);
sheet->GetPageSetup()->SetBottomMargin(0);
sheet->GetPageSetup()->SetTopMargin(0);
sheet->GetPageSetup()->SetRightMargin(0);
intrusive_ptr<Image> image = sheet->ToImage(sheet->GetFirstRow(), sheet->GetFirstColumn(), sheet->GetLastRow(), sheet->GetLastColumn());
//ファイルに保存する
image->Save(outputFile.c_str());
workbook->Dispose();
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。