Kako raditi s XLSX pakiranjem u C++?

Aspose.Cells FOSS for C++ reads and writes Excel files in the .xlsx Otvorite XML format. Interno, XlsxWorkbookSerializer Ova uputstvo objašnjava kako koristiti API za učitavanje/čuvanje i što pakiranje sloja upravlja automatski.

Korak po korak vodič

Korak 1: Pripremite se za izgradnju

cmake_minimum_required(VERSION 3.15)
project(XlsxPackaging CXX)
set(CMAKE_CXX_STANDARD 17)

add_subdirectory(path/to/Aspose.Cells-FOSS-for-Cpp)
add_executable(XlsxPackaging main.cpp)
target_link_libraries(XlsxPackaging PRIVATE Aspose.Cells.Foss.Cpp)

Korak 2: Uključite naslovnice

#include "aspose/cells_foss/Workbook.h"
#include "aspose/cells_foss/Worksheet.h"
#include "aspose/cells_foss/Cell.h"

using namespace Aspose::Cells_FOSS;

Korak 3: Uplatiti postojeću XLSX datoteku

U skladu s člankom 1. Workbook(filePath) Konstruktor poziva XlsxWorkbookSerializer::Load Interno razpakirati sve dijelove Open XML-a:

int main() {
    Workbook workbook("input.xlsx");
    Worksheet& sheet = workbook.GetWorksheets()[0];
    std::string title = sheet.GetCells()["A1"].GetStringValue();
    return 0;
}

Korak 4: Promjeniti radnu svesku

Napravite bilo koje promjene u ćelijama, stilu ili strukturi koristeći standardni API:

sheet.GetCells()["A1"].PutValue("Updated Title");
sheet.GetCells()["B2"].PutValue(99.0);
sheet.GetCells()["C3"].SetFormula("=B2*2");

Korak 5: Sačuvaj radnu svesku

Zovi me. Workbook::Save(fileName) da sve dijelove Open XML-a pakira natrag u XLSX arhivu:

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

Format je izveden iz .xlsx produženje. XlsxWorkbookSerializer::Save metoda rukovodi pisanjem xl/workbook.xml, xl/worksheets/sheet*.xml, xl/styles.xml, i xl/sharedStrings.xml dijelove automatski.


Korak 6: Shvatite što je u pitanju pakiranje

Ne morate direktno komunicirati s unutarnjim dijelovima pakiranja.:

Članak 1.Upravlja:
Struktura radnog listaXlsxWorkbookProperties
Podaci iz radnog listaWorksheetXmlMapper
Stipovi i fontoviXlsxWorkbookStyles
Zajednički nizoviSharedStringTableXmlMapper
Oznake dokumentaXlsxDocumentProperties
Definirani naziviXlsxWorkbookDefinedNames

Česta pitanja i rješenja

Datoteka se čuva, ali ne otvara u programu Excel Završite s isporukom datoteke put koristi .xlsx Ako sačuvate različitim proširenjem, možda ćete dobiti nepoznatu datoteku.

Styles izgubljen nakon povratka Primjena Cell::SetStyle(style) prije nego što pozoveš. Workbook::Save.Styles modifikovani nakon čuvanja nisu napisani.

Datoteka se učita kao prazna Provjerite je li datoteka neštićena lozinkom i valjan XLSX (ne) .xls ili: .xlsmU knjižnici se podržava: .xlsx Samo… samo.

Definirane imena nedostaju nakon čuvanja Upotreba: Workbook::EnsureUniqueDefinedName() prije nego što se spase za rješavanje bilo kakvih sukoba u obimu.

Memorija nije oslobođena. Zovi me. workbook.Dispose() Nakon što je uštedjela da oslobodi sve interne XLSX pakiranja resursa.

Česta pitanja

Mogu li sačuvati u drugi format osim XLSX?

Trenutni izdanje v0.1 podržava pohranu samo na XLSX. Podržano je učitavanje CSV-a, ali spremanje u CS V nije dostupno.

Čuvaju li biblioteke postojeće dijelove koje nisam modifikovao?

Da, serijalizator vrti sve dijelove koje učita. Neobiđeni podaci radnog lista, stilovi i definirana imena su sačuvani na pohranjivanju.

Mogu li pregledati sirov XML dijela radne sveske?

U skladu s člankom 1. XmlDocument::SaveToUtf8() metoda serijalizira XML dokument u niz. Međutim, izravni pristup dijelovima XLSX arhiva nije izložen javnom API-ju. Use XmlDocument za prilagođenu XML obradu.

Postoji li API za strimiranje velikih datoteka?

Ne, trenutna verzija učita cijeli radni svitak u memoriju. Za vrlo velike datoteke razmotrite dijeljenje obrade na manje radne svitke.

Što se događa ako sam sačuvao na istom datoteku koju sam učitao?

Biblioteka piše na novi unutarnji tampon prije nego što nadpiše datoteku na disku, tako da u-mjesto pohraniti ne ošteti izvor.

Također pogledajte:

 Hrvatski