チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»xlscppcells

Displaying items by tag: xlscppcells

セルの結合と分割は、Microsoft Excel の2つの重要な機能で、より整理された、視覚的に魅力的なスプレッドシートを作成することができます。セルの結合は、隣接するセルを結合して、複数の列や行にまたがる1つのセルを作成することができます。この機能は、表のヘッダー、タイトル、ラベルを作成したり、データをより簡潔な形式にまとめたりする際に特に便利です。

一方、セルの分割は、結合されたセルを複数のセルに分割する処理です。この機能は、結合されたセル内のデータを分割する場合や、異なる書式やスタイルをセルに適用する必要がある場合に使用できます。

この記事では、Spire.XLS for C++ を使用して C++ で Excel のセルを結合または分割する方法について説明します。

Spire.XLS for C++ をインストールします

Spire.XLS for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。

Spire.XLS for C++ を C++ アプリケーションに統合する方法

Excel で特定のセルを結合する

Spire.XLS for C++ が提供する IXLSRange->Merge() メソッドを使用して、特定の範囲のセルを結合することができます。詳細な手順は次のとおりです。

  • Workbook のインスタンスを初期化します。
  • Workbook->LoadFromFile(LPCWSTR_S fileName) メソッドを使用して Excel ファイルを読み込みます。
  • Workbbok->GetWorksheets()->Get(int index) メソッドを使用して、特定のワークシートを取得します。
  • Worksheet->GetRange(LPCWSTR_S name) メソッドを使用して、特定のセル範囲を取得します。
  • IXLSRange->Merge() メソッドを使用してセル範囲を結合します。
  • IXLSRange->GetStyle()->SetHorizontalAlignment(HorizontalAlignType::Center) メソッドを使用して、そのセルのテキストを中央揃えに設定します。
  • Workbook->SaveToFile(LPCWSTR_S fileName, ExcelVersion version) メソッドを使用して、結果文書を保存します。
  • C++
#include "Spire.Xls.o.h";

using namespace Spire::Xls;
using namespace std;


int main()
{
	//入出力ファイルパスを指定する
	wstring inputFile = L"Template.xlsx";
	wstring outputFile = L"MergeCells.xlsx";

	//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));

	//特定の範囲を結合する
	intrusive_ptr<IXLSRange> range = sheet->GetRange(L"A1:E1");
	range->Merge();

	//セルのテキストを中央揃えに設定する
	range->GetStyle()->SetHorizontalAlignment(HorizontalAlignType::Center);

	//結果文書を保存する
	workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2013);
	workbook->Dispose();
}

C++:Excel でセルを結合または分割する方法

Excel で結合されたセルを分割する

結合されたセルを分割するには、IXLSRange->UnMerge() メソッドを使用してください。詳細な手順は次のとおりです。

  • Workbook のインスタンスを初期化します。
  • Workbook->LoadFromFile(LPCWSTR_S fileName) メソッドを使用して Excel ファイルを読み込みます。
  • Workbbok->GetWorksheets()->Get(int index) メソッドを使用して、特定のワークシートを取得します。
  • Worksheet->GetRange(LPCWSTR_S name) メソッドを使用して、特定のセル範囲を取得します。
  • IXLSRange->UnMerge() メソッドを使用して、そのセルを分割します。
  • Workbook->SaveToFile(LPCWSTR_S fileName, ExcelVersion version) メソッドを使用して、結果文書を保存します。
  • C++
#include "Spire.Xls.o.h";

using namespace Spire::Xls;
using namespace std;

int main()
{
	//入出力ファイルパスを指定する
	wstring inputFile = L"MergeCells.xlsx";
	wstring outputFile = L"UnmergeCells.xlsx";

	//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));

	//セルを分割する
	intrusive_ptr<IXLSRange> range = sheet->GetRange(L"A1");
	range->UnMerge();

	//結果文書を保存する
	workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2013);
	workbook->Dispose();
}

C++:Excel でセルを結合または分割する方法

Excel ですべての結合されたセルを分割する

Spire.XLS for C++ には、特定のワークシート内のすべての結合されたセルを取得できる Worksheet->GetMergedCells() メソッドが用意されています。次に、IXLSRange->UnMerge() メソッドを使用してセルを分割できます。詳細な手順は次のとおりです。

  • Workbook のインスタンスを初期化します。
  • Workbook->LoadFromFile(LPCWSTR_S fileName) メソッドを使用して、 Excel ファイルを読み込みます。
  • Workbbok->GetWorksheets()->Get(int index) メソッドを使用して、特定のワークシートを取得します。
  • Worksheet->GetMergedCells() メソッドを使用して、そのシート内の結合されたセルを取得します。
  • すべての結合されたセルをループし、IXLSRange->UnMerge() メソッドを使用して結合された各セルを分割します。
  • Workbook->SaveToFile(LPCWSTR_S fileName, ExcelVersion version) メソッドを使用して、結果文書を保存します。
  • C++
#include "Spire.Xls.o.h";

using namespace Spire::Xls;
using namespace std;

int main()
{
	//入出力ファイルパスを指定する
	wstring inputFile = L"Template.xlsx";
	wstring outputFile = L"UnmergeAllCells.xlsx";

	//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));

	//そのシート内の結合されたセルを取得する
	intrusive_ptr<Spire::Common::IList<XlsRange>> range = sheet->GetMergedCells();

	//すべての結合されたセルをループする
	for (int i = 0; i < range->GetCount(); i++)
	{
		intrusive_ptr<XlsRange> cell = range->GetItem(i);
		//各セルを分割する
		cell->UnMerge();
	}

	//結果文書を保存する
	workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2013);
	workbook->Dispose();
}

C++:Excel でセルを結合または分割する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in セル
Tagged under

ワークシートを作成する際、MS Excel のデフォルトフォントは「Calibri」で、サイズは11、色は黒です。ただし、文書の外観を最適化するために太字や斜体など異なるフォントスタイルを適用したり、大量のデータの中から重要な情報を強調するために特定のフォント色を設定したりする必要がある場合があります。この記事では、Spire.XLS for C++ を使用して C++ で Excel のセルにフォントを適用する方法について説明します。

Spire.XLS for C++ をインストールします

Spire.XLS for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。

Spire.XLS for C++ を C++ アプリケーションに統合する方法

異なる Excel セルに異なるフォントを適用する

Spire.XLS for C++ によって提供される ExcelFont クラスを使用すると、セル内のフォント名、色、サイズ、およびスタイルを設定または変更できます。以下は、Excel のさまざまなセルに異なるまなフォントを適用する手順です。

  • Workbook オブジェクトを作成します。
  • Workbook->GetWorksheets()->Get() メソッドを使用して特定のワークシートを取得します。
  • Worksheet->GetRange() メソッドを使用して、指定されたセルを取得します。
  • CellRange->SetText() メソッドを使用してセルの値を設定します。
  • CellRange->GetStyle()->GetFont() メソッドを使用して、指定されたセルのフォントを取得します。
  • ExcelFont クラスのメソッドを使用して、フォント名、色、サイズ、およびスタイルを設定します。
  • Workbook->SaveToFile() メソッドを使用して結果ファイルを保存します。
  • C++
#include "Spire.Xls.o.h";

using namespace Spire::Xls;

int main() {

	//出力ファイルのパスと名前を指定する
	std::wstring outputPath = L"Output\\";
	std::wstring outputFile = outputPath + L"ApplyFontToCell.xlsx";

	//Workbookオブジェクトを作成する
	Workbook* workbook = new Workbook();

	//最初のシートを取得する
	Worksheet* sheet = workbook->GetWorksheets()->Get(0);

	//フォント名を設定する
	sheet->GetRange(L"B1")->SetText(L"フォント名: Yu Mincho");
	sheet->GetRange(L"B1")->GetStyle()->GetFont()->SetFontName(L" Yu Mincho ");

	//フォントサイズを設定する
	sheet->GetRange(L"B2")->SetText(L"フォントサイズ: 25");
	sheet->GetRange(L"B2")->GetStyle()->GetFont()->SetSize(25);

	//テキストを太字に設定する
	sheet->GetRange(L"B3")->SetText(L"フォントスタイル: 太字");
	sheet->GetRange(L"B3")->GetStyle()->GetFont()->SetIsBold(true);

	//テキストに下線を追加する
	sheet->GetRange(L"B4")->SetText(L"フォントスタイル: 下線");
	sheet->GetRange(L"B4")->GetStyle()->GetFont()->SetUnderline(FontUnderlineType::Single);

	//フォント色を設定する
	sheet->GetRange(L"B5")->SetText(L"フォント色: 赤色");
	sheet->GetRange(L"B5")->GetStyle()->GetFont()->SetColor(Spire::Common::Color::GetRed());

	//テキストを斜体に設定する
	sheet->GetRange(L"B6")->SetText(L"フォントスタイル: 斜体");
	sheet->GetRange(L"B6")->GetStyle()->GetFont()->SetIsItalic(true);

	//テキストに削除線を追加する
	sheet->GetRange(L"B7")->SetText(L"フォントスタイル: 削除線");
	sheet->GetRange(L"B7")->GetStyle()->GetFont()->SetIsStrikethrough(true);

	//結果ファイルに保存する
	workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2013);
	workbook->Dispose();
}

C++:Excel のセルにフォントを適用する方法

単一の Excel セルに複数のフォントを適用する

単一の Excel セルに複数のフォントを適用することで、特定の文字を強調するのに役立ちます。以下は、単一のセルに複数のフォントを適用する手順です。

  • Workbook オブジェクトを作成します。
  • Workbook->GetWorksheets()->Get() メソッドを使用して特定のワークシートを取得します。
  • Workbook->CreateExcelFont() メソッドを使用して 2 つの ExcelFont オブジェクトを作成します。
  • Worksheet->GetRange() メソッドを使用して指定されたセルを取得します。
  • 次に、CellRange->GetRichText()->SetText() メソッドを使用してセルのリッチテキストのコンテンツを設定します。
  • RichText->SetFont(int startPos, int endPos, ExcelFont* font) メソッドを使用して、2 つの ExcelFont オブジェクトをリッチ テキストに適用します。
  • Workbook->SaveToFile() メソッドを使用して結果ファイルを保存します。
  • C++
#include "Spire.Xls.o.h";

using namespace Spire::Xls;

int main() {

	//出力ファイルのパスと名前を指定する
	std::wstring outputPath = L"Output\\";
	std::wstring outputFile = outputPath + L"ApplyMultipleFontstoCell.xlsx";

	//Workbookオブジェクトを作成する
	Workbook* workbook = new Workbook();

	//最初のシートを取得する
	Worksheet* sheet = workbook->GetWorksheets()->Get(0);

	//ExcelFontオブジェクトを作成し、そのフォントスタイル、色、サイズを設定する
	ExcelFont* font1 = workbook->CreateExcelFont();
	font1->SetKnownColor(ExcelColors::LightBlue);
	font1->SetIsBold(true);
	font1->SetSize(13);

	//別のExcelFontオブジェクトを作成し、そのフォントスタイル、色、サイズを設定する
	ExcelFont* font2 = workbook->CreateExcelFont();
	font2->SetKnownColor(ExcelColors::Red);
	font2->SetIsBold(true);
	font2->SetIsItalic(true);
	font2->SetFontName(L"Yu Mincho");
	font2->SetSize(15);

	//RichText文字列をセルB 5に書き込む
	RichText* richText = sheet->GetRange(L"B5")->GetRichText();
	richText->SetText(L"C++ 用のスタンドアロン Excel 開発マスター");

	//セルB 5のテキストに2スタイルのフォントを適用する
	richText->SetFont(0, 12, font1);
	richText->SetFont(14, 26, font2);

	//結果ファイルに保存する
	workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2013);
	workbook->Dispose();
}

C++:Excel のセルにフォントを適用する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in セル
Tagged under