Como carregar uma planilha em C++

Como carregar uma planilha em C++

Aspose.Cells FOSS for C++ allows you to load and read existing XLSX spreadsheets without requiring Microsoft Excel. This guide walks through loading a workbook, accessing worksheets, and reading cell values using the Workbook, Worksheet, e Cell Aulas.

Guia passo a passo

Passo 1: Prepare a construção

Adicione Aspose.Cells FOSS para C++ ao seu projeto CMake:

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

add_subdirectory(path/to/Aspose.Cells-FOSS-for-Cpp)

add_executable(LoadSpreadsheet main.cpp)
target_link_libraries(LoadSpreadsheet PRIVATE Aspose.Cells.Foss.Cpp)

Passo 2: Incluir cabeçalhos exigidos

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

using namespace Aspose::Cells_FOSS;

Passo 3: Carregar o livro de trabalho

Passe o caminho do ficheiro para a página de acesso . Workbook constructor para carregar um arquivo XLSX existente:

int main() {
    Workbook workbook("input.xlsx");
    // workbook is now loaded and ready to use
    return 0;
}

Passo 4: Acesse uma planilha de trabalho

Utilização: Workbook::GetWorksheets() para recuperar a coleção de folhas de cálculo, em seguida acessar por índice:

Worksheet& sheet = workbook.GetWorksheets()[0];
std::string name = sheet.GetName();

Passo 5: Leia os valores das células

Acesse as células por cadeia de endereços e leia os seus valores:

std::string text = sheet.GetCells()["A1"].GetStringValue();
double number = sheet.GetCells()["B2"].GetValue().AsDouble();
bool flag = sheet.GetCells()["C3"].GetValue().AsBool();

Passo 6: Salvar as alterações

Após fazer modificações, salve de volta para um arquivo:

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

Problemas comuns e soluções

Arquivo não encontrado erro de carregamento Verifique se o caminho do arquivo é correto e que o arquivos existem. Use um caminho absoluto se a diretoria de trabalho for incerta.

Cadeia vazia retornada para uma célula numérica Utilização: GetValue().AsDouble() em vez de: GetStringValue()GetStringValue() Retorna uma sequência vazia para células que contêm números em vez de texto.

Carregamento da pasta de trabalho mas as células aparecem vazias Certifique-se de que o arquivo XLSX não está protegido por senha. Aspose.Cells FOSS para C++ não suporta arquivos criptografados.

Celular de fórmula retorna valor inesperado As células de fórmula armazenam a cadeia da fórmula, não o valor calculado. A fórmula é avaliada pelo Excel quando o arquivo é aberto. Use GetFormula() para obter o texto da fórmula.

Memória não liberada após o processamento Chama-me . workbook.Dispose() Depois de todas as operações serem concluídas, liberar os recursos não gerenciados.

Perguntas Frequentes

Posso carregar várias folhas de trabalho a partir de um único arquivo?

Sim, usa. Workbook::GetWorksheets() para acessar todas as folhas e iterar por índice. chamada sheet.GetName() Identificar cada folha pelo seu nome.

Posso carregar arquivos XLSX com várias folhas e ler de uma específica?

Sim, folhas de acesso por índice baseado em zero: workbook.GetWorksheets()[1] Retorna a segunda folha.

Carregar um ficheiro desencadeia recalculação de fórmula?

Não. A biblioteca carrega os valores de células e as cadeias de fórmulas como armazenados no arquivo XLSX. O recalculo da fórmula acontece no Excel ou em um leitor compatível quando o arquivos são abertos.

O que acontece se o caminho do arquivo contém caracteres Unicode?

Passe o caminho como um std::string com a codificação correta para sua plataforma. Os caminhos UTF-8 são suportados no Linux e macOS. No Windows, certifique-se de que o caminho de codificacao corresponde ao local do sistema.

É seguro carregar o mesmo ficheiro várias vezes ao mesmo tempo?

A biblioteca não é segura para acesso simultâneo ao mesmo. Workbook instância. carga separada Workbook instâncias por thread.

Ver também:

 Português