Hogyan töltsünk be egy táblázatot C++-ban?

Hogyan töltsünk be egy táblázatot C++-ban?

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,és a következők: Cell osztályok.

Lépésről lépésre szóló útmutató

1. lépés: Állítsd fel az épületet!

Adja hozzá a Aspose.Cells FOSS C++-ra a CMake projekthez:

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)

2. lépés: Adja be a szükséges címcímeket

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

3. lépés: Töltse be a munkafüzetet

Adja át a fájl útját az … Workbook a meglévő XLSX fájl betöltésére szolgáló konstruktor:

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

4. lépés: Nyissa fel a munkalapot

Használat Workbook::GetWorksheets() a munkalapok gyűjteményének megkerítése, majd index útján történő hozzáférés:

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

5. lépés: Olvasd el a cellák értékeit

Adresszszekrényben hozzáférhető cellák és értékük olvasható:

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

6. lépés: A változtatásokat mentse le

A módosítások után mentse vissza egy fájlba:

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

Általános problémák és megoldások

Nem talált fájl, feltöltés közben hibás. Ellenőrizze, hogy a fájl útja helyes és az áll-e fenn. Használjon abszolút utat, ha a munkatárgy bizonytalan.

Üres sor egy számos cellára visszaküldve Használat GetValue().AsDouble() helyett. GetStringValue()GetStringValue() üres szalagot ad a szöveg helyett számokat tartalmazó cellákra.

Munkafüzet betöltve, de üres a cellák Biztosítsuk, hogy az XLSX fájlt nem védjük jelszóval. Aspose.Cells A FOSS for C++ nem támogatja a titkosított fájlokat.

A képlet cellája váratlan értéket ad vissza. A képlet cellák a képletek szalagját tárolják, nem pedig az elszámolt értékeket. Az Excel értékeli a formulát, amikor megnyitja a fájlt. Használja GetFormula() a képlet szövegének megkerítése.

Memória nem szabadított fel feldolgozás után Hívj! workbook.Dispose() Minden művelet befejezése után a nem kezelhető források felszabadítása.

Gyakran feltett kérdések

Tudok több munkalapot tölteni egy fájltól?

Igen, használd. Workbook::GetWorksheets() Minden lapot elérni és index szerint iterálni. Hívás sheet.GetName() minden lap neve szerint azonosítani.

Fel tudom tölteni a több lapú XLSX fájlt, és egy konkrétat olvashatom?

Igen, hozzáférési lapok nullás index szerint: workbook.GetWorksheets()[1] a második lapot adja vissza.

A fájl betöltése újraszámításhoz vezet?

Nem. A könyvtár az XLSX fájlban tárolt cellák értékeit és képlet szalagokat tölt be. Az Excelben vagy egy kompatibilis olvasóban történik a képletek újraszámítása, amikor megnyitják a fájlt.

Mi történik, ha a fájl útja Unicode karaktereket tartalmaz?

Át kell menni az ösvényen. std::string A UTF-8 útvonalak támogathatók a Linuxon és a macOS-on. Windowsban biztosítsd, hogy az útvonal kódolása megfeleljen a rendszer helyi rendszernek.

Biztonságos egy és ugyanazt a fájlt egyszerre többször feltölteni?

A könyvtár nem vezeték-biztonságos az azonos egyidejű hozzáféréshez. Workbook A nyomás elkülönítve. Workbook A következők:.

Lásd még:

 Magyar