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:.