Com carregar una plantilla en 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, i Cell classes.
Guia de pas a pas
Pas 1: Prepara la construcció
Afegir Aspose.Cells FOSS per a C++ al teu projecte 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)Pas 2: Inclou els títols requerits.
#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;Pas 3: Carregar el llibre de treball
Passa la ruta del fitxer a l’ordinador de correcció. Workbook constructor per carregar un arxiu XLSX existent:
int main() {
Workbook workbook("input.xlsx");
// workbook is now loaded and ready to use
return 0;
}Pas 4: Accedir a una plantilla de treball
Utilització: Workbook::GetWorksheets() per recuperar la col·lecció de fitxes, i després accedir-hi pel index:
Worksheet& sheet = workbook.GetWorksheets()[0];
std::string name = sheet.GetName();Pas 5: Llegir els valors de la cèl·lula
Accedir a cèl·lules per cadena d’adreces i llegir els seus valors:
std::string text = sheet.GetCells()["A1"].GetStringValue();
double number = sheet.GetCells()["B2"].GetValue().AsDouble();
bool flag = sheet.GetCells()["C3"].GetValue().AsBool();Pas 6: Salvar qualsevol canvi
Després de fer modificacions, guardar en un fitxer:
workbook.Save("output.xlsx");
workbook.Dispose();Problemes comuns i fixos
No s’ha trobat cap arxiu Error de càrrega Verifica que la ruta del fitxer és correcta i que el fitxatge existeix. Utilitza una ruta absoluta si l’informe de treball no està clar.
Retorn de cadena buida per a una cèl·lula numèrica Utilització: GetValue().AsDouble() en lloc de: GetStringValue() — GetStringValue() Retorna una cadena buida per a les cèl·lules que contenen números en lloc de text.
Carrega de llibres d’obra però les cel·les apareixen buides Assegureu-vos que el fitxer XLSX no està protegit per contrasenya. Aspose.Cells FOSS for C++ no suporta arxius xifrats.
La cèl·lula de fórmula retorna un valor inesperat Les cèl·lules de la fórmula emmagatzemen la cadena de fórmules, no el valor calculat. La fórmula s’evalua per Excel quan l’arxiu és obert. Utilitzar GetFormula() per recuperar el text de la fórmula.
Memòria no alliberada després de processar-la. Call workbook.Dispose() després de totes les operacions s’ha completat per alliberar recursos no gestionats.
Preguntes freqüents
Puc carregar múltiples fitxes d’un sol arxiu?
Sí, utilitzeu-la. Workbook::GetWorksheets() Per accedir a totes les fulles i iterar per index. sheet.GetName() identificar cada ficha pel seu nom.
Puc carregar arxius XLSX amb múltiples fulles i llegir d’una determinada?
Sí, les fitxes d’accés per índice basat en zero: workbook.GetWorksheets()[1] torna la segona pàgina.
Carregar un fitxer desencadena el recalcul de la fórmula?
No. La biblioteca carrega els valors de cèl·lula i les cadenes de fórmula tal com s’emmagatzemen en el fitxer XLSX. El recalcul de la fórmula es fa a Excel o un lector compatible quan s ‘obre el fichier.
Què passa si la ruta del fitxer conté caràcters Unicode?
Passa el camí com un std::string amb la codificació correcta per a la seva plataforma. Les rutes UTF-8 són compatibles en Linux i macOS. En Windows, assegureu-vos que l’encriptació de ruta coincideixi amb el sistema local.
És segur carregar el mateix fitxer diverses vegades alhora?
La biblioteca no és segura per a l’accés simultani al mateix. Workbook instància. càrrega separada Workbook instàncies per fil.