Trabalhar com células e o modelo de dados

Trabalhar com células e o modelo de dados

Trabalhar com células e o modelo de dados

A Comissão Cell class é a interface principal para ler e escrever valores de células, fórmulas e estilos individuais da planilha. Acesse uma célula através do menu da folha de cálculo. Cells Coleção utilizando uma cadeia de endereços.


Escrever valores em células

Utilização: Cell::PutValue para escrever texto, números, booleanos ou datas em uma célula:

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

Configuração de fórmulas

Utilização: Cell::SetFormula(formula) Para escrever uma fórmula compatível com o Excel. As fórmulas são avaliadas pelo Excel ou leitores compativeis quando o arquivo é aberto.

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

Leitura de valores das células

Leia o valor atual de uma célula com: Cell::GetValue(), que retorna um valor de CellValue Conversão para um tipo específico utilizando o acessório adequado:

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

A Comissão CellValue classe fornece acessórios tipados:

Método de avaliaçãoTipo de devolução
AsDouble()double
AsInteger()int
AsBool()bool
AsString()std::string
AsDateTime()DateTime

Acesso a células por linha e coluna

Além das cadeias de endereços, aceder a células por índices baseados em zero:

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

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

Células em fusão

Utilização: Cells::Merge Para fundir um intervalo retangular de células num:

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

Obter texto de exibição

Para recuperar o valor da célula como texto de exibição formatado (aplicando formatos numéricos), use Cell::GetDisplayStringValue():

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

Dicas e melhores práticas

  • Preferência PutValue mais uma vez . SetValue para atribuições directas PutValue tem sobrecargas para todos os tipos primitivos.
  • Utilização: GetStringValue() para recuperar texto sem conversão de tipo; use GetValue().AsDouble() quando precisam de precisão numérica.
  • Sempre ligue. SetFormula para células de fórmula, não PutValue("=SUM(...)") o último armazena um literal de string, não uma fórmula.
  • Utilização: CellArea::CreateCellArea(start, end) para criar objetos de gama para operações de fusão e formatação.

Problemas comuns

EmissãoCausa da morteCorreção
GetValue() retorna vazioCélula não foi escritaEscreva um valor com: PutValue antes de ler.
Fórmula não avaliadaFórmula guardada como cadeia de caracteresUtilização: SetFormula(expr) em vez de: PutValue(expr)
Fusão fracassadaDimensões de intervalo inválidasAssegurar a endRow >= startRow e a) endColumn >= startColumn
Desconcordância de tipo na leituraChamar errado . As*() método deCompare o acessório com o original. PutValue Tipo de veículo:

Resumo de referência da API

Classe/MétodoDescrição:
Cell::PutValue(value)Escreva um valor literal na célula.
Cell::SetFormula(formula)Configurar uma sequência de fórmulas do Excel
Cell::GetValue()Obter o valor da célula como um CellValue
Cell::GetStringValue()Obter o valor da célula como uma cadeia de caracteres .
Cell::GetDisplayStringValue()Obter a cadeia de caracteres formatada para exibição
Cell::GetRow()Obter o índice de linha baseado em zero
Cell::GetColumn()Obter o índice de coluna baseada em zero
Cell::GetStyle()Obter o estilo de célula atual
Cell::SetStyle(style)Aplicar um estilo modificado na célula
CellValue::AsDouble()Converter o valor da célula para duplo
CellValue::AsString()Converter o valor da célula para cadeia de caracteres
Cells::Merge(row, col, rows, cols)Merger um intervalo retangular

Ver também:

 Português