Impostazioni del bordo con C++

Aggiungere Bordi alle Celle

Microsoft Excel permette agli utenti di formattare le celle aggiungendo i bordi. Il tipo di bordo dipende da dove viene aggiunto. Ad esempio, un bordo superiore viene aggiunto alla posizione superiore di una cella. Gli utenti possono anche modificare lo stile di linea e il colore dei bordi.

Con Aspose.Cells, gli sviluppatori possono aggiungere bordi e personalizzarne l’aspetto in modo flessibile come in Microsoft Excel.

Aggiungere Bordi alle Celle

Aspose.Cells fornisce una classe, Workbook che rappresenta un file Microsoft Excel. La classe Workbook contiene una collezione Worksheets che consente di accedere a ogni foglio di calcolo nel file Excel. Un foglio di calcolo viene rappresentato dalla classe Worksheet. La classe Worksheet fornisce la collezione Cells. Ogni elemento nella collezione Cells rappresenta un oggetto della classe Cell.

Aspose.Cells fornisce il metodo GetStyle nella classe Cell. Il metodo SetStyle viene utilizzato per impostare lo stile di formattazione di una cella. La classe Style offre proprietà per aggiungere bordi alle celle.

Aggiunta di bordi a una cella

Gli sviluppatori possono aggiungere bordi a una cella utilizzando la raccolta Style dell’oggetto GetBorders(). Il tipo di bordo viene passato come indice alla raccolta GetBorders(). Tutti i tipi di bordo sono predefiniti nell’enumerazione BorderType.

Enumerazione Border

Tipi di bordo Descrizione
BottomBorder Una linea di bordo inferiore
DiagonaleInGiù Una linea diagonale dall’angolo superiore sinistro a quello inferiore destro
DiagonaleSu Una linea diagonale dall’angolo inferiore sinistro a quello superiore destro
BordoSinistro Una linea del bordo sinistro
BordoDestro Una linea del bordo destro
BordoSuperiore Una linea del bordo superiore

La raccolta GetBorders() memorizza tutti i bordi. Ogni bordo nella raccolta GetBorders() è rappresentato da un oggetto Border che fornisce due proprietà, GetColor() e GetLineStyle(), per impostare rispettivamente colore e stile della linea del bordo.

Per impostare il colore della linea di un bordo, seleziona un colore utilizzando l’enumerazione Colore e assegnalo alla proprietà Colore dell’oggetto Border.

Lo stile della linea del bordo viene impostato selezionando uno stile di linea dall’enumerazione CellBorderType.

Enumerazione CellBorderType

Stili di Linea Descrizione
TrattoPunto Linea sottile tratteggiata
TrattoPuntoPunto Linea sottile trattino-punto
Tratteggiata Linea tratteggiata
Punteggiata Linea punteggiata
Doppia Linea doppia
Capelli Linea sottile di capelli
TrattoPuntoPuntoMedio Linea tratto-punto di spessore medio
TrattoPuntoPuntoMedio Linea trattino-punto di spessore medio
TrattoTratteggiatoMedio Linea tratteggiata di spessore medio
Nessuno Nessuna linea
Medio Linea di spessore medio
TrattoInclinatoPunto Linea tratto-punto inclinata di medio spessore
Spesso Linea spessa
Sottile Linea sottile

Seleziona uno degli stili di linea e assegnalo alla proprietà GetLineStyle() dell’oggetto Border.

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

Aggiunta di bordi a un intervallo di celle

È anche possibile aggiungere bordi a un intervallo di celle piuttosto che a una singola cella. Per farlo, prima crea un intervallo di celle chiamando il metodo CreateRange della raccolta Cells. Accetta i seguenti parametri:

  • Prima riga, la prima riga dell’intervallo.
  • Prima colonna, rappresenta la prima colonna dell’intervallo.
  • Numero di righe, il numero di righe nell’intervallo.
  • Numero di colonne, il numero di colonne nell’intervallo.

Il metodo CreateRange restituisce un oggetto Range, che contiene l’intervallo di celle specificato. L’oggetto Range fornisce un metodo SetOutlineBorder che prende i seguenti parametri per aggiungere un bordo all’intervallo di celle:

  • Tipo di Bordi, il tipo di bordo, selezionato dall’enumerazione BorderType.
  • Stile di Linea, lo stile della linea del bordo, selezionato dall’enumerazione CellBorderType.
  • Colore, il colore della linea, selezionato dall’enumerazione Colore.
#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();
}