Cómo descargar una hoja de espalda en C++

Cómo descargar una hoja de espalda 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,y, Cell Las clases .

Guía paso a paso

Paso 1: Instalar el edificio

Añadir Aspose.Cells FOSS para C++ a su proyecto 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)

Paso 2: Incluir los cabezas necesarios

#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;

Paso 3: Cargar el libro de trabajo

Pasar el archivo de ruta a la Workbook Constructor para cargar un archivo XLSX existente:

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

Paso 4: Acceso a una hoja de trabajo

Uso Workbook::GetWorksheets() para recuperar la colección de hoja de trabajo, luego acceder por índice:

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

Paso 5: Leer los valores de la célula

Acceso a las células por dirección y leer sus valores:

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

Paso 6: Salva cualquier cambio

Después de realizar modificaciones, guardar de nuevo a un archivo:

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

Problemas y soluciones comunes

No se encontró error en la carga Verificar el camino de archivo es correcto y el archivos existe. Utilice un camino absoluto si el directorio de trabajo no está seguro.

La línea vacía devuelta para una célula numérica Uso GetValue().AsDouble() En lugar de GetStringValue()GetStringValue() devolve una línea vacía para las células que contienen números en lugar del texto.

El libro de trabajo carga pero las células parecen vacías Asegúrese de que el archivo XLSX no está protegido por contraseña. Aspose.Cells FOSS para C++ no soporta los archivos cifrados.

La célula de fórmula devolve el valor inesperado Las células de fórmula almacenan la línea de la fórmula, no el valor calculado.La fórma se evalúa por Excel cuando se abre el archivo.Utilizar GetFormula() para recuperar el texto de la fórmula.

Memoria no liberada después de la procesamiento llamadas workbook.Dispose() Después de que todas las operaciones sean completas para liberar los recursos no gestionados.

Preguntas frecuentes

¿Puedo cargar varias hojas de trabajo desde un solo archivo?

Sí, usamos Workbook::GetWorksheets() para acceder a todas las hojas y iterate por índice. sheet.GetName() Identificar cada hoja por nombre.

¿Puedo cargar archivos XLSX con múltiples hojas y leer de una determinada?

Los datos de acceso por índice basado en cero: workbook.GetWorksheets()[1] Devuelve la segunda hoja.

¿La carga de un archivo provoca la recalculacin de la fórmula?

No. La biblioteca carga valores de células y líneas de fórmula como se almacenan en el archivo XLSX. la recalculacin de Fórmula ocurre en Excel o un lector compatible cuando el fichero se abre.

¿Qué ocurre si el camino de archivo contiene caracteres Unicode?

Pasar el camino como un std::string con la codificación correcta para su plataforma. los caminos UTF-8 se soportan en Linux y macOS. En Windows, asegúrese de que el encodamiento del camino coincide con el local del sistema.

¿Es seguro cargar el mismo archivo varias veces simultáneamente?

La biblioteca no es thread-safe para el acceso simultáneo a la misma. Workbook El cargamento separado Workbook Los casos por thread.

Ver también

 Español