Hogyan kell dolgozni a XLSX csomagolással C++-ban?

Hogyan kell dolgozni a XLSX csomagolással C++-ban?

Aspose.Cells FOSS for C++ reads and writes Excel files in the .xlsx Nyitja meg az XML formátumot. XlsxWorkbookSerializer Ez a kézikönyv elmagyarázza, hogyan kell használni az API-t és mit kezel automatikusan a csomagolási réteg.

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

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

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)

2. lépés: Figyelembe kell venni a címsorokat is

#include "aspose/cells_foss/Workbook.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 egy meglévő XLSX fájlt

A Bizottság Workbook(filePath) konstruktor hívás XlsxWorkbookSerializer::Load a belső csomagolás minden Open XML részének kitárolására:

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

4. lépés: Módosítsa a munkafüzetet

Csináljon bármilyen cellát, stílust vagy szerkezeti változtatást a szabványos API használatával:

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

5. lépés: Vedd le a munkafüzetet

Hívj! Workbook::Save(fileName) az Open XML-részeket visszapakolni egy XLSX archívumba:

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

A formátum a következőkből származik: .xlsx A terjeszkedés. XlsxWorkbookSerializer::Save A módszer a betűzéssel foglalkozik. xl/workbook.xml, xl/worksheets/sheet*.xml, xl/styles.xml,és a következők: xl/sharedStrings.xml alkatrészek automatikusan.


6. lépés: Értse meg, hogy a csomagolási réteg mit kezel

A csomagolás belső részeihez nem szükséges közvetlen kapcsolatba lépni.:

RészA vezetés:
Munkafüzet szerkezeteXlsxWorkbookProperties
MunkalapadatokWorksheetXmlMapper
Stilek és betűtípusokXlsxWorkbookStyles
Közös szalagokSharedStringTableXmlMapper
Dokumentum tulajdonságaiXlsxDocumentProperties
Meghatározott nevekXlsxWorkbookDefinedNames

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

A fájl mentése, de nem nyitva az Excelben Biztosítsuk, hogy a kimeneti fájl útja használja az alábbi programokat: .xlsx A más kiterjesztéssel történő mentés felismerhetetlen fájlt eredményezhet.

A menet után elveszett stílusok A kérelmet be kell nyújtani. Cell::SetStyle(style) mielőtt hívná. Workbook::Save.A mentés után módosított stílusok nem íródnak.

Tiszta fájl betöltése Ellenőrizze, hogy a fájl nem jelszó-védelem alatt áll és érvényes XLSX (nem) formátumban van. .xls vagy a következő: .xlsm) A könyvtár támogatja a .xlsx Csak… csak.

A mentés után hiányzó definiált nevek Használat Workbook::EnsureUniqueDefinedName() a hatókörbeli összeférhetetlenségek megoldására.

Memória nem szabadított fel. Hívj! workbook.Dispose() a belső XLSX csomagolási források felszabadítására.

Gyakran feltett kérdések

Megtarthatom más formátumban, mint XLSX?

A jelenlegi v0.1 kiadás csak XLSX-re menthet. CSV betöltés támogatott, de a CS V-be mentés nem elérhető.

A könyvtár megőrzi a nem módosított részeket?

Igen, a sorozatkezelő minden feltöltött alkatrészt körbe-körbe tölt. A nem módosított munkalap adatok, stílusok és definiált nevek megőrződnek az mentésen.

Megnézhetem egy munkafüzet-rész nyers XML-ét?

A Bizottság XmlDocument::SaveToUtf8() A módszer egy XML dokumentumot sorrendbe alakít. Azonban az XLSX archívum részeihez való közvetlen hozzáférés nem nyílik a nyilvános API-ban. Use XmlDocument a testreszabott XML-feldolgozáshoz.

Van egy nagy fájlokhoz való API-s streaming?

A jelenlegi kiadás az egész munkafüzetet betölti a memóriába. Nagyon nagy fájloknál fontolja meg, hogy kisebbekre bontsa feldolgozását.

Mi történik, ha ugyanazt a fájlt mentem meg?

A könyvtár új belső pufferbe ír, mielőtt felülírja a fájlt a lemezen. Így az helyben mentés nem károsítja a forrást.

Lásd még:

 Magyar