チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
セルの結合と分割は、Microsoft Excel の2つの重要な機能で、より整理された、視覚的に魅力的なスプレッドシートを作成することができます。セルの結合は、隣接するセルを結合して、複数の列や行にまたがる1つのセルを作成することができます。この機能は、表のヘッダー、タイトル、ラベルを作成したり、データをより簡潔な形式にまとめたりする際に特に便利です。
一方、セルの分割は、結合されたセルを複数のセルに分割する処理です。この機能は、結合されたセル内のデータを分割する場合や、異なる書式やスタイルをセルに適用する必要がある場合に使用できます。
この記事では、Spire.XLS for C++ を使用して C++ で Excel のセルを結合または分割する方法について説明します。
Spire.XLS for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。
Spire.XLS for C++ を C++ アプリケーションに統合する方法
Spire.XLS for C++ が提供する IXLSRange->Merge() メソッドを使用して、特定の範囲のセルを結合することができます。詳細な手順は次のとおりです。
#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();
}
結合されたセルを分割するには、IXLSRange->UnMerge() メソッドを使用してください。詳細な手順は次のとおりです。
#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();
}
Spire.XLS for C++ には、特定のワークシート内のすべての結合されたセルを取得できる Worksheet->GetMergedCells() メソッドが用意されています。次に、IXLSRange->UnMerge() メソッドを使用してセルを分割できます。詳細な手順は次のとおりです。
#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();
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
ワークシートを作成する際、MS Excel のデフォルトフォントは「Calibri」で、サイズは11、色は黒です。ただし、文書の外観を最適化するために太字や斜体など異なるフォントスタイルを適用したり、大量のデータの中から重要な情報を強調するために特定のフォント色を設定したりする必要がある場合があります。この記事では、Spire.XLS for C++ を使用して C++ で Excel のセルにフォントを適用する方法について説明します。
Spire.XLS for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。
Spire.XLS for C++ を C++ アプリケーションに統合する方法
Spire.XLS for C++ によって提供される ExcelFont クラスを使用すると、セル内のフォント名、色、サイズ、およびスタイルを設定または変更できます。以下は、Excel のさまざまなセルに異なるまなフォントを適用する手順です。
#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();
}
単一の Excel セルに複数のフォントを適用することで、特定の文字を強調するのに役立ちます。以下は、単一のセルに複数のフォントを適用する手順です。
#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();
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。