C++による枠線設定
セルにボーダーを追加する
Microsoft Excelでは、セルに枠線を追加してセルの書式設定を行えます。枠線の種類は追加場所によって異なります。例えば、上枠線はセルのトップ位置に追加されます。ユーザーは線のスタイルや色も変更可能です。
Aspose.Cellsを使用すると、開発者はMicrosoft Excelと同様に柔軟に罫線を追加し、見た目をカスタマイズできます。
セルにボーダーを追加する
Aspose.Cellsは、Microsoft Excelファイルを表すクラスWorkbookを提供します。WorkbookクラスにはExcelファイル内の各ワークシートにアクセスできるWorksheetsコレクションが含まれます。ワークシートはWorksheetクラスで表されます。WorksheetクラスはCellsコレクションを提供します。Cellsコレクション内の各アイテムはCellクラスのオブジェクトです。
Aspose.Cellsは、GetStyleメソッドをCellクラスに提供します。このSetStyleメソッドはセルの書式設定を行うために使用されます。Styleクラスはセルに枠線を追加するためのプロパティを提供します。
セルに罫線を追加
開発者は、StyleオブジェクトのGetBorders()コレクションを使ってセルに枠線を追加できます。枠線のタイプはインデックスとしてGetBorders()コレクションに渡します。すべての枠線タイプは事前に定義されたBorderType列挙型に含まれています。
境界の列挙
枠線の種類 | 説明 |
---|---|
下罫線 | 下に線を引く |
斜め下 | 左上から右下への斜線 |
斜め上 | 左下から右上への斜線 |
左の境界線 | 左境界線 |
右の境界線 | 右境界線 |
上の境界線 | 上境界線 |
GetBorders()コレクションはすべての枠線を格納します。GetBorders()コレクション内の各枠線はBorderオブジェクトで表され、二つのプロパティGetColor()とGetLineStyle()を持ち、枠線の線の色とスタイルをそれぞれ設定できます。
境界線の線の色を設定するには、Color列挙体を使用して色を選び、それを境界線オブジェクトのColorプロパティに割り当てます。
枠線のラインスタイルは、CellBorderType列挙型からスタイルを選択して設定します。
CellBorderType列挙体
線のスタイル | 説明 |
---|---|
DashDot | 細い破線点線 |
DashDotDot | 細い破線点線点線 |
Dashed | 破線 |
Dotted | 点線 |
Double | 二重線 |
Hair | 細い線 |
MediumDashDot | 中太破線点線 |
MediumDashDotDot | 中太破線点線点線 |
MediumDashed | 中太破線 |
None | なし |
Medium | 中程度の線 |
SlantedDashDot | 傾斜した中太破線点線 |
Thick | 太線 |
Thin | 細線 |
線スタイルを一つ選び、それをBorderオブジェクトのGetLineStyle()プロパティに割り当てます。
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
Workbook workbook;
Worksheet worksheet = workbook.GetWorksheets().Get(0);
Cell cell = worksheet.GetCells().Get(u"A1");
cell.PutValue(u"Visit Aspose!");
Style style = cell.GetStyle();
style.GetBorders().Get(BorderType::TopBorder).SetLineStyle(CellBorderType::Thick);
style.GetBorders().Get(BorderType::TopBorder).SetColor(Color::Black());
style.GetBorders().Get(BorderType::BottomBorder).SetLineStyle(CellBorderType::Thick);
style.GetBorders().Get(BorderType::BottomBorder).SetColor(Color::Black());
style.GetBorders().Get(BorderType::LeftBorder).SetLineStyle(CellBorderType::Thick);
style.GetBorders().Get(BorderType::LeftBorder).SetColor(Color::Black());
style.GetBorders().Get(BorderType::RightBorder).SetLineStyle(CellBorderType::Thick);
style.GetBorders().Get(BorderType::RightBorder).SetColor(Color::Black());
cell.SetStyle(style);
workbook.Save(outDir + u"book1.out.xls");
std::cout << "Excel file saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
セルの範囲に境界線を追加する
1つのセルだけでなく、範囲に対して枠線を追加することも可能です。そのためには、最初にCellsコレクションのCreateRangeメソッドを呼び出し、セル範囲を作成します。引数は以下の通りです:
- 最初の行、範囲の最初の行。
- 最初の列、範囲の最初の列を表す。
- 行数、範囲内の行数。
- 列数、範囲内の列数。
CreateRangeメソッドは、指定されたセル範囲を含むRangeオブジェクトを返します。Rangeオブジェクトは、範囲に枠線を追加するための引数を取るSetOutlineBorderメソッドを提供します:
- 枠線タイプ:BorderType列挙型から選ばれる枠線タイプ。
- ラインスタイル:枠線のラインスタイル。CellBorderType列挙型から選択。
- 色、Color 列挙型から選択した線の色。
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Create workbook
Workbook workbook;
// Obtain the reference of the first (default) worksheet
Worksheet worksheet = workbook.GetWorksheets().Get(0);
// Accessing the "A1" cell from the worksheet
Cell cell = worksheet.GetCells().Get(u"A1");
// Adding some value to the "A1" cell
cell.PutValue(u"Hello World From Aspose");
// Creating a range of cells starting from "A1" cell to 3rd column in a row
Range range = worksheet.GetCells().CreateRange(0, 0, 1, 3);
// Adding a thick top border with blue line
range.SetOutlineBorder(BorderType::TopBorder, CellBorderType::Thick, Color::Blue());
// Adding a thick bottom border with blue line
range.SetOutlineBorder(BorderType::BottomBorder, CellBorderType::Thick, Color::Blue());
// Adding a thick left border with blue line
range.SetOutlineBorder(BorderType::LeftBorder, CellBorderType::Thick, Color::Blue());
// Adding a thick right border with blue line
range.SetOutlineBorder(BorderType::RightBorder, CellBorderType::Thick, Color::Blue());
// Saving the Excel file
workbook.Save(outDir + u"book1.out.xls");
std::cout << "Excel file created successfully!" << std::endl;
Aspose::Cells::Cleanup();
}