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.