Travailler avec les cellules et le modèle de données

Travailler avec les cellules et le modèle de données

Travailler avec les cellules et le modèle de données

Le Cell classe est l’interface primaire pour la lecture et l’écriture des valeurs cellulaires, formules et styles de feuille d’oeuvre individuelles. Cells La collection utilise une ligne d’adresse.


Écrire des valeurs aux cellules

Utiliser Cell::PutValue Pour écrire un texte, des nombres, les booleans ou les dates dans une cellule :

#include "aspose/cells_foss/Workbook.h"
#include "aspose/cells_foss/Worksheet.h"
#include "aspose/cells_foss/Cell.h"

using namespace Aspose::Cells_FOSS;

int main() {
    Workbook workbook;
    Worksheet& sheet = workbook.GetWorksheets()[0];

    sheet.GetCells()["A1"].PutValue("Product");
    sheet.GetCells()["B1"].PutValue("Price");
    sheet.GetCells()["A2"].PutValue("Widget");
    sheet.GetCells()["B2"].PutValue(9.99);
    sheet.GetCells()["C2"].PutValue(true);

    workbook.Save("data.xlsx");
    return 0;
}

Définir des formules

Utiliser Cell::SetFormula(formula) Pour écrire une formule compatible avec Excel. les formulaires sont évalués par Excel ou les lecteurs compatibles lorsque le fichier est ouvert.

sheet.GetCells()["B4"].SetFormula("=SUM(B2:B3)");
sheet.GetCells()["C4"].SetFormula("=AVERAGE(B2:B3)");

Lire les valeurs cellulaires

Lire la valeur actuelle d’une cellule avec Cell::GetValue(),qui revient à CellValue Convertir à un type spécifique en utilisant l’accessoire approprié :

CellValue val = sheet.GetCells()["B2"].GetValue();
double price = val.AsDouble();
std::string text = sheet.GetCells()["A2"].GetStringValue();

Le CellValue La classe fournit des accessoires typiques :

méthodeType de retour
AsDouble()double
AsInteger()int
AsBool()bool
AsString()std::string
AsDateTime()DateTime

Accès aux cellules par roule et colonne

En plus des lignes d’adresse, les cellules d’accès par ligne basée sur zéro et les indices de colonne:

// Address string
Cell& cellA1 = sheet.GetCells()["A1"];

// Row/column index (0-based)
int row = cellA1.GetRow();
int col = cellA1.GetColumn();

Les cellules qui se déchirent

Utiliser Cells::Merge Pour combiner une gamme rectangulaire de cellules dans un :

CellArea area = CellArea::CreateCellArea("A1", "C1");
sheet.GetCells().Merge(area.StartRow, area.StartColumn,
                       area.EndRow - area.StartRow + 1,
                       area.EndColumn - area.StartColumn + 1);

Obtenir un texte de diffusion

Pour récupérer la valeur cellulaire en tant que texte d’affichage formaté (application de formats numériques), utilisez Cell::GetDisplayStringValue():

std::string display = sheet.GetCells()["B2"].GetDisplayStringValue();

Conseils et meilleures pratiques

  • Préférez PutValue sur SetValue pour les tâches littéraires directes - PutValue Il a des surcharges pour tous les types primitifs.
  • Utiliser GetStringValue() pour récupérer le texte sans conversion de type; utilisez GetValue().AsDouble() Quand vous avez besoin de précision numérique.
  • Toujours appeler SetFormula Pour les cellules de formule, pas PutValue("=SUM(...)") - le dernier stocke une ligne littéraire, pas une formule.
  • Utiliser CellArea::CreateCellArea(start, end) Construire des objets de gamme pour fusion et formater les opérations.

Les problèmes communs

ProblèmeCauseFixé
GetValue() Retour videLa cellule n’a pas été écriteÉcrire une valeur avec PutValue Avant la lecture
Formule non évaluéeFormule sauvée en tant que stringUtiliser SetFormula(expr) Au lieu de PutValue(expr)
Faute de fusionDimension de portée invalideassure endRow >= startRow et endColumn >= startColumn
Type de malconciliation à lireAppeler erreur As*() méthodeCompatible avec l’accessoire original PutValue Type

Le résumé de référence API

Classes / MéthodesDescription
Cell::PutValue(value)Écrire une valeur littéraire à la cellule
Cell::SetFormula(formula)Définir une formule Excel
Cell::GetValue()Retraite la valeur cellulaire en tant que CellValue
Cell::GetStringValue()Retirez la valeur cellulaire en tant que string
Cell::GetDisplayStringValue()Retranscrire la barre d’affichage formatée
Cell::GetRow()Obtenez l’indice de ligne basé sur zéro
Cell::GetColumn()Obtenez l’indice de colonne basé sur zéro
Cell::GetStyle()Obtenez le style cellulaire actuel
Cell::SetStyle(style)Application d’un style modifié à la cellule
CellValue::AsDouble()Convertir la valeur cellulaire à double
CellValue::AsString()Convertir la valeur cellulaire en string
Cells::Merge(row, col, rows, cols)Mettre en place un rang rectangulaire

Voir aussi

 Français