Kantinställningar med C++

Lägga till ramar till celler

Microsoft Excel låter användare formatera celler genom att lägga till kanter. Typen av kant beror på var den läggs till. Till exempel är en övre kant en som läggs till i cellens övre position. Användare kan också ändra linjestilen och färgen på kanterna.

Med Aspose.Cells kan utvecklare lägga till kanter och anpassa hur de ser ut på samma flexibla sätt som i Microsoft Excel.

Lägga till ramar till celler

Aspose.Cells tillhandahåller en klass, Workbook som representerar en Microsoft Excel-fil. Workbook-klassen innehåller en Worksheets-samling som möjliggör åtkomst till varje kalkylblad i Excel-filen. Ett kalkylblad representeras av Worksheet-klassen. Worksheet-klassen tillhandahåller en Cells-samling. Varje objekt i Cells-samlingen representerar ett objekt av Cell-klassen.

Aspose.Cells tillhandahåller metoden GetStyle i Cell-klassen. Metoden SetStyle används för att sätta ett cellers formateringsstil. Style-klassen tillhandahåller egenskaper för att lägga till kanter till celler.

Lägga till ramar till en cell

Utvecklare kan lägga till kanter till en cell genom att använda Style-objektets GetBorders()-samling. Kantens typ anges som ett index i GetBorders()-samlingen. Alla kanttyper är fördefinierade i BorderType-enumerationen.

Kantuppräkning

Kanttyper Beskrivning
BottomBorder En bottenkantlinje
DiagonalDown En diagonallinje från övre vänstra till högra nedre
DiagonalUp En diagonal linje från nedre vänstra till övre högra
LeftBorder En vänstrekantlinje
RightBorder En högrekantlinje
TopBorder En toppkantlinje

Kollektionssamlingen GetBorders() innehåller alla kanter. Varje kant i GetBorders()-kollektionen representeras av ett Border-objekt som tillhandahåller två egenskaper, GetColor() och GetLineStyle(), för att ställa in kantlinjens färg och stil respektive.

För att ställa in kantfärgen, välj en färg med hjälp av Color-enumerationen och tilldela den till kantobjektets Color-egenskap.

Kantlinjens stil anges genom att välja en linje från CellBorderType-enumerationen.

CellBorderType-enumen

Linjestilar Beskrivning
DashDot Tunt streck-dotslinje
DashDotDot Tunt streck-dotad linje
Dashed Streckad linje
Dotted Punkten linje
Double Dubbellinje
Hair Hårlinje
MediumDashDot Medium streck-dotad linje
MediumDashDotDot Medium streck-dotad linje
MediumDashed Medium streckad linje
None Ingen linje
Medium Medium linje
SlantedDashDot Snedstreckad medium streck-dotad linje
Thick Tjock linje
Thin Tunn linje

Välj en av linjestilarna och tilldela den till Border objektets GetLineStyle() egenskap.

#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();
}

Lägga till Gränser till en Rad av Celler

Det är också möjligt att lägga till ramar till ett cellområde snarare än en enskild cell. För att göra det, först skapa ett cellområde genom att anropa Cells-samlingens CreateRange-metod. Den tar följande parametrar:

  • Första rad, den första raden av området.
  • Första kolumn, representerar den första kolumnen av området.
  • Antal rader, antalet rader i området.
  • Antal kolumner, antalet kolumner i området.

Metoden CreateRange returnerar ett Range-objekt, som innehåller det angivna cellområdet. Range-objektet ger en SetOutlineBorder-metod som tar följande parametrar för att lägga till en ram till cellområdet:

  • Ramtipo, ramens typ, vald från BorderType enumarationen.
  • Linjestil, ramens linjestil, vald från CellBorderType enumarationen.
  • Färg, linjens färg, vald från Färg uppräkningen.
#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();
}