Como criar e popularizar um modelo de dados de planilha em C ++

Como criar e popularizar um modelo de dados de planilha em C ++

Este guia mostra como criar uma pasta de trabalho, preencher células com valores e fórmulas, aplicar estilos e salvar como um arquivo de planilha usando a biblioteca Aspose.Cells FOSS para C++. As classes principais envolvidas são: Workbook, Worksheet, Cell, e Style.

Guia passo a passo

Passo 1: Prepare a construção

Adicione a biblioteca FOSS de células ao seu projeto CMake e ligue o Aspose.Cells.Foss.Cpp alvo:

cmake_minimum_required(VERSION 3.15)
project(CreateSpreadsheet CXX)
set(CMAKE_CXX_STANDARD 17)

add_subdirectory(path/to/Aspose.Cells-FOSS-for-Cpp)
add_executable(CreateSpreadsheet main.cpp)
target_link_libraries(CreateSpreadsheet PRIVATE Aspose.Cells.Foss.Cpp)

Passo 2: Inclua cabeçalhos e defina espaços de nomes

Incluir os cabeçalhos por classe de: aspose/cells_foss/ para cada classe que utilizar (Workbook.h, Worksheet.h, Cell.h, Style.h, Font.h, Color.h, CellArea.h), em seguida, abra o Aspose::Cells_FOSS Espaço de nomes:

using namespace Aspose::Cells_FOSS;

Passo 3: Crie um livro de trabalho e nomeie a folha

Instanciar Workbook, recuperar a primeira folha de cálculo via GetWorksheets()[0], e definir o seu nome de exibição:

int main() {
    Workbook workbook;
    Worksheet& sheet = workbook.GetWorksheets()[0];
    sheet.SetName("Sales");
    return 0;
}

Passo 4: Adicionar valores de célula

Chama-me . GetCells()["A1"].PutValue() para escrever cadeias de texto, valores numéricos e booleanos em células individuais por endereço:

sheet.GetCells()["A1"].PutValue("Product");
sheet.GetCells()["B1"].PutValue("Price");
sheet.GetCells()["A2"].PutValue("Widget");
sheet.GetCells()["B2"].PutValue(9.99);
sheet.GetCells()["A3"].PutValue("Gadget");
sheet.GetCells()["B3"].PutValue(24.99);

Passo 5: Definir uma fórmula

Chama-me . SetFormula() numa célula para armazenar uma sequência de fórmulas compatíveis com o Excel; a fórmula é avaliada pelo Excel quando o ficheiro é aberto:

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

Passo 6: Aplicar o estilo de célula

Compre o estilo com Cell::GetStyle(), modificá-la e aplicar com a mesma aplicação. Cell::SetStyle(style):

Style headerStyle = sheet.GetCells()["A1"].GetStyle();
Font font;
font.SetBold(true);
font.SetColor(Color::FromArgb(255, 255, 255, 255));
headerStyle.SetFont(font);
headerStyle.SetPattern(FillPattern::Solid);
headerStyle.SetForegroundColor(Color::FromArgb(255, 34, 120, 212));
sheet.GetCells()["A1"].SetStyle(headerStyle);
sheet.GetCells()["B1"].SetStyle(headerStyle);

Etapa 7: Reunião de células

Utilização: Cells::Merge Para combinar um intervalo numa única célula:

CellArea titleArea = CellArea::CreateCellArea("A1", "B1");
sheet.GetCells().Merge(0, 0, 1, 2);

Passo 8: Salve o livro de trabalho

Chama-me . workbook.Save() com um nome de arquivo para escrever a planilha como um arquivos XLSX, em seguida, chamar Dispose() liberar recursos:

workbook.Save("sales.xlsx");
workbook.Dispose();

Problemas comuns e soluções

Estilo não aplicado após a salvação Sempre ligue. Cell::SetStyle(style) Modificar o estilo devolvido diretamente não aplica alterações; você deve explicitamente colocá-lo de volta.

Fórmula armazenada como literal de cadeia Utilização: SetFormula("=SUM(...)") Não, não. PutValue("=SUM(...)"). PutValue trata o argumento como uma string literal, não uma fórmula.

Célula fundida não se apresenta corretamente Assegure-se de que os parâmetros da fusão (linha, coluna, linhaCount, cotação de colunas) abrangem corretamente o intervalo pretendido. Não são suportadas as fusões sobrepostas.

Livro de trabalho sem folhas após a construção Uma folha padrão é sempre criada por: Workbook().- Ligue. GetWorksheets()[0] para aceder a ele.

Descarregar não chamou Sempre ligue. workbook.Dispose() A Comissão tem de apresentar um relatório sobre a aplicação do programa.

Perguntas Frequentes

Posso adicionar várias folhas de trabalho a um livro?

Sim, usa. Workbook::GetWorksheets() Para aceder à coleção e adicionar folhas programaticamente. Certifique-se de que cada folha tem um nome único usando o código do sistema, mas não a sua própria página web. Workbook::EnsureUniqueSheetName().

Como eu definir um formato de número para uma célula?

Utilização: Style::SetNumberFormat(format) Antes de ligares. Cell::SetStyle(style). Formatar string seguir a sintaxe padrão do formato de número Excel.

Posso aplicar o mesmo estilo a várias células?

Obter o estilo uma vez, modificá-lo e depois ligar. SetStyle(style) em cada célula alvo.

A fórmula é avaliada quando salva?

Não. A avaliação de fórmulas acontece no Excel ou num leitor compatível quando o ficheiro é aberto.

Quantas linhas e colunas pode uma planilha conter?

Cada planilha contém dados em toda a sua grelha completa de linhas e colunas, seguindo as dimensões padrão da planilla.

Ver também:

 Português