Cum să încărcați o foaie de calcul în C ++

Cum să încărcați o foaie de calcul în 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 cursuri.

Ghid pas cu pas

Pasul 1: Construirea

Adăugați Aspose.Cells FOSS pentru C++ la proiectul 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)

Pasul 2: Includeţi titlurile necesare

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

Pasul 3: Încarcă carnetul de lucru

Treci calea fişierului la Workbook constructor pentru a încărca un fișier XLSX existent:

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

Pasul 4: Accesați o foaie de lucru

Utilizare: Workbook::GetWorksheets() pentru a recupera colecția de fișe, apoi acces prin index:

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

Pasul 5: Citeste valorile celulelor

Acces la celule prin șir de adrese și citirea valorilor lor:

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

Pasul 6: Salvaţi orice modificări

După efectuarea modificărilor, salvați înapoi la un fișier:

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

Probleme comune şi soluţii

Făilă ne gasită eroare la încărcare Verificați că calea fișierului este corectă și fișierul există. Utilizați o cale absolută dacă directoriul de lucru nu este sigur.

String gol returnat pentru o celulă numerică Utilizare: GetValue().AsDouble() în loc de: GetStringValue()GetStringValue() returnă o șiră goală pentru celulele care conțin numere, mai degrabă decât text.

Carte de lucru încărcate, dar celulele apar goale Asigurați-vă că fișierul XLSX nu este protejat prin parolă. Aspose.Cells FOSS pentru C++ nu suportă fișiere criptate.

Celulară de formulă returnă valoarea neașteptată Celulele formulei stochează șirul de formule, nu valoarea calculată. Formula este evaluată de Excel atunci când se deschide fișierul. Utilizați GetFormula() pentru a recupera textul formulei.

Memorie neeliberată după procesare Sună-mă. workbook.Dispose() după ce toate operaţiunile sunt finalizate pentru a elibera resursele neadministrate.

Întrebări frecvente

Pot încărca mai multe foi de lucru dintr-un singur fișier?

Da, foloseşte-l. Workbook::GetWorksheets() pentru a accesa toate foile și iterate de index. Call sheet.GetName() identificarea fiecărei foi prin nume.

Pot încărca fişiere XLSX cu mai multe folii şi citesc dintr-una anume?

Da, fișele de acces pe indice bazate pe zero: workbook.GetWorksheets()[1] returnă a doua foaie.

Încărcarea unui fişier declanşează o recalculare a formulei?

Nu. Biblioteca încărcă valorile celulelor și șirurile de formule stocate în fișierul XLSX. Recalcularea formulă se face în Excel sau într-un cititor compatibil atunci când este deschis fișierul.

Ce se întâmplă dacă calea fișierului conține caractere Unicode?

Treci pe calea de a-l lua. std::string cu codificarea corectă pentru platforma dvs. UTF-8 căile sunt suportate pe Linux și macOS. Pe Windows, asigurați-vă că codarea drumului se potrivește localizării sistemului.

Este sigur să încărcăm acelaşi fişier de mai multe ori simultan?

Biblioteca nu este securizată pentru acces simultan la aceeaşi Workbook Încarcă separată. Workbook Instanțe pe fir.

Vezi și:

 Română