Jak vytvořit a naplnit datový model tabulky v C++

Jak vytvořit a naplnit datový model tabulky v C++

Tento průvodce ukazuje, jak vytvořit sešit, naplnit buňky hodnotami a vzorci, aplikovat styly a uložit jako soubor tabulky pomocí knihovny Aspose.Cells FOSS pro C++. Hlavní třídy, které jsou zapojeny, jsou Workbook, Worksheet, Cell a Style.

Návod krok za krokem

Krok 1: Nastavte sestavení

Přidejte knihovnu Cells FOSS do svého projektu CMake a propojte cíl Aspose.Cells.Foss.Cpp:

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

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

Krok 2: Zahrňte hlavičkové soubory a nastavte jmenný prostor

Zahrňte hlavičkové soubory pro jednotlivé třídy z aspose/cells_foss/ pro každou třídu, kterou používáte (Workbook.h, Worksheet.h, Cell.h, Style.h, Font.h, Color.h, CellArea.h), a poté otevřete jmenný prostor Aspose::Cells_FOSS:

using namespace Aspose::Cells_FOSS;

Krok 3: Vytvořte sešit a pojmenujte list

Instanciujte Workbook, získejte první list pomocí GetWorksheets()[0] a nastavte jeho zobrazovaný název:

int main() {
    Workbook workbook;
    Worksheet& sheet = workbook.GetWorksheets()[0];
    sheet.SetName("Sales");
    return 0;
}

Krok 4: Přidejte hodnoty buněk

Zavolejte GetCells()["A1"].PutValue() pro zápis textových řetězců, číselných hodnot a logických hodnot do jednotlivých buněk podle adresy:

sheet.GetCells()["A1"].PutValue("Product");
sheet.GetCells()["B1"].PutValue("Price");
sheet.GetCells()["A2"].PutValue("Widget");
sheet.GetCells()["B2"].PutValue(9.99);
sheet.GetCells()["A3"].PutValue("Gadget");
sheet.GetCells()["B3"].PutValue(24.99);

Krok 5: Nastavte vzorec

Zavolejte SetFormula() na buňku pro uložení řetězce vzorce kompatibilního s Excelem; vzorec je vyhodnocen v Excelu při otevření souboru:

sheet.GetCells()["B4"].SetFormula("=SUM(B2:B3)");

Krok 6: Použijte stylování buněk

Získejte styl pomocí Cell::GetStyle(), upravte jej a aplikujte pomocí Cell::SetStyle(style):

Style headerStyle = sheet.GetCells()["A1"].GetStyle();
Font font;
font.SetBold(true);
font.SetColor(Color::FromArgb(255, 255, 255, 255));
headerStyle.SetFont(font);
headerStyle.SetPattern(FillPattern::Solid);
headerStyle.SetForegroundColor(Color::FromArgb(255, 34, 120, 212));
sheet.GetCells()["A1"].SetStyle(headerStyle);
sheet.GetCells()["B1"].SetStyle(headerStyle);

Krok 7: Sloučit buňky

Použijte Cells::Merge ke sloučení rozsahu do jedné buňky:

CellArea titleArea = CellArea::CreateCellArea("A1", "B1");
sheet.GetCells().Merge(0, 0, 1, 2);

Krok 8: Uložit sešit

Zavolejte workbook.Save() s názvem souboru pro zápis tabulky jako souboru XLSX, poté zavolejte Dispose() pro uvolnění prostředků:

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

Časté problémy a opravy

Styl se po uložení nepoužije Vždy zavolejte Cell::SetStyle(style) po úpravě objektu stylu. Přímá úprava vráceného stylu se neprojeví; musíte jej explicitně nastavit zpět.

Vzorec uložen jako řetězcový literál Použijte SetFormula("=SUM(...)") not PutValue("=SUM(...)"). PutValue považuje argument za řetězcový literál, ne za vzorec.

Sloučená buňka se nezobrazuje správně Zajistěte, aby parametry sloučení (row, column, rowCount, columnCount) správně pokrývaly zamýšlený rozsah. Překrývající se sloučení nejsou podporována.

Sešit nemá po konstrukci žádné listy Výchozí list je vždy vytvořen Workbook(). Zavolejte GetWorksheets()[0] pro přístup k němu.

Dispose nebyl zavolán Vždy zavolejte workbook.Dispose() pro uvolnění prostředků, zejména v dlouhodobě běžících aplikacích.

Často kladené otázky

Mohu přidat více listů do jednoho sešitu?

Ano. Použijte Workbook::GetWorksheets() pro přístup ke kolekci a přidávejte listy programově. Zajistěte, aby každý list měl jedinečný název pomocí Workbook::EnsureUniqueSheetName().

Jak nastavit číselný formát pro buňku?

Použijte Style::SetNumberFormat(format) před voláním Cell::SetStyle(style). Formátovací řetězce odpovídají standardní syntaxi číselných formátů v Excelu.

Mohu použít stejný styl na více buněk?

Ano. Získáte styl jednou, upravíte jej a poté zavoláte SetStyle(style) na každou cílovou buňku.

Vyhodnocuje se vzorec při uložení?

Ne. Vyhodnocení vzorce probíhá v Excelu nebo kompatibilním čtečce při otevření souboru. Knihovna zapíše řetězec vzorce do buňky.

Kolik řádků a sloupců může list obsahovat?

Každý list obsahuje data v celé své mřížce řádků a sloupců dle standardních rozměrů tabulky.

Viz také:

 Čeština