Hur man laddar ett kalkylblad i C++
Aspose.Cells FOSS för C++ låter dig ladda och läsa befintliga XLSX-kalkylblad utan att behöva Microsoft Excel. Denna guide går igenom hur man laddar en arbetsbok, får åtkomst till kalkylblad och läser cellvärden med hjälp av klasserna Workbook, Worksheet och Cell.
Steg-för-steg-guide
Steg 1: Ställ in bygget
Lägg till Aspose.Cells FOSS för C++ i ditt CMake-projekt:
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)Steg 2: Inkludera nödvändiga huvudfiler
#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;Steg 3: Ladda arbetsboken
Skicka filvägen till Workbook-konstruktorn för att läsa in en befintlig XLSX-fil:
int main() {
Workbook workbook("input.xlsx");
// workbook is now loaded and ready to use
return 0;
}Steg 4: Åtkomst till ett arbetsblad
Använd Workbook::GetWorksheets() för att hämta samlingen av arbetsblad, och sedan få åtkomst via index:
Worksheet& sheet = workbook.GetWorksheets()[0];
std::string name = sheet.GetName();Steg 5: Läs cellvärden
Åtkomst till celler via adresssträng och läs deras värden:
std::string text = sheet.GetCells()["A1"].GetStringValue();
double number = sheet.GetCells()["B2"].GetValue().AsDouble();
bool flag = sheet.GetCells()["C3"].GetValue().AsBool();Steg 6: Spara eventuella ändringar
Efter att ha gjort ändringar, spara tillbaka till en fil:
workbook.Save("output.xlsx");
workbook.Dispose();Vanliga problem och lösningar
Fil hittades inte-fel vid laddning Verifiera att filvägen är korrekt och att filen finns. Använd en absolut sökväg om arbetskatalogen är osäker.
Tom sträng returneras för en numerisk cell Använd GetValue().AsDouble() istället för GetStringValue() — GetStringValue() returnerar en tom sträng för celler som innehåller tal snarare än text.
Arbetsboken laddas men cellerna verkar tomma Säkerställ att XLSX-filen inte är lösenordsskyddad. Aspose.Cells FOSS för C++ stöder inte krypterade filer.
Formelcell returnerar oväntat värde Formelceller lagrar formelsträngen, inte det beräknade värdet. Formeln utvärderas av Excel när filen öppnas. Använd GetFormula() för att hämta formeltexten.
Minne frigörs inte efter bearbetning Call workbook.Dispose() efter att alla operationer är slutförda för att frigöra ohanterade resurser.
Vanliga frågor
Kan jag läsa in flera arbetsblad från en enda fil?
Ja. Använd Workbook::GetWorksheets() för att komma åt alla blad och iterera efter index. Anropa sheet.GetName() för att identifiera varje blad efter namn.
Kan jag läsa in XLSX-filer med flera blad och läsa från ett specifikt blad?
Ja. Kom åt blad med nollbaserat index: workbook.GetWorksheets()[1] returnerar det andra bladet.
Utlöser laddning av en fil omberäkning av formler?
Nej. Biblioteket laddar cellvärden och formelsträngar som de är lagrade i XLSX-filen. Formelomberäkning sker i Excel eller en kompatibel läsare när filen öppnas.
Vad händer om filsökvägen innehåller Unicode-tecken?
Passera sökvägen som en std::string med korrekt kodning för din plattform. UTF-8-sökvägar stöds på Linux och macOS. På Windows, säkerställ att sökvägens kodning matchar systemets lokala inställning.
Är det säkert att läsa in samma fil flera gånger samtidigt?
Biblioteket är inte trådsäkert för samtidig åtkomst till samma Workbook instans. Ladda separata Workbook instanser per tråd.