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.