Jak utworzyć i wypełnić model danych arkusza kalkulacyjnego w C++

Jak utworzyć i wypełnić model danych arkusza kalkulacyjnego w C++

Ten przewodnik pokazuje, jak utworzyć skoroszyt, wypełnić komórki wartościami i formułami, zastosować style oraz zapisać jako plik arkusza kalkulacyjnego przy użyciu biblioteki Aspose.Cells FOSS dla C++. Podstawowe klasy to Workbook, Worksheet, Cell i Style.

Przewodnik krok po kroku

Krok 1: Skonfiguruj budowanie

Dodaj bibliotekę Cells FOSS do swojego projektu CMake i połącz docelowy element 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: Dołącz nagłówki i ustaw przestrzeń nazw

Dołącz nagłówki poszczególnych klas z aspose/cells_foss/ dla każdej używanej klasy (Workbook.h, Worksheet.h, Cell.h, Style.h, Font.h, Color.h, CellArea.h), a następnie otwórz przestrzeń nazw Aspose::Cells_FOSS:

using namespace Aspose::Cells_FOSS;

Krok 3: Utwórz skoroszyt i nazwij arkusz

Zainicjalizuj Workbook, pobierz pierwszy arkusz za pomocą GetWorksheets()[0] i ustaw jego wyświetlaną nazwę:

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

Krok 4: Dodaj wartości komórek

Wywołaj GetCells()["A1"].PutValue(), aby zapisać ciągi tekstowe, wartości liczbowe i wartości logiczne do poszczególnych komórek według adresu:

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: Ustaw formułę

Wywołaj SetFormula() na komórce, aby zapisać ciąg formuły zgodnej z Excelem; formuła zostanie obliczona przez Excel po otwarciu pliku:

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

Krok 6: Zastosuj stylowanie komórek

Pobierz styl za pomocą Cell::GetStyle(), zmodyfikuj go i zastosuj przy pomocy 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: Scal komórki

Użyj Cells::Merge, aby połączyć zakres w jedną komórkę:

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

Krok 8: Zapisz skoroszyt

Wywołaj workbook.Save() z nazwą pliku, aby zapisać arkusz jako plik XLSX, a następnie wywołaj Dispose(), aby zwolnić zasoby:

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

Typowe problemy i rozwiązania

Styl nie został zastosowany po zapisaniu Zawsze wywołuj Cell::SetStyle(style) po modyfikacji obiektu stylu. Modyfikowanie zwróconego stylu bezpośrednio nie powoduje zastosowania zmian; musisz go wyraźnie ustawić ponownie.

Formuła przechowywana jako literał łańcucha Użyj SetFormula("=SUM(...)") not PutValue("=SUM(...)"). PutValue traktuje argument jako literał łańcucha, a nie formułę.

Połączona komórka nie wyświetla się prawidłowo Upewnij się, że parametry scalania (row, column, rowCount, columnCount) prawidłowo obejmują zamierzony zakres. Nakładające się scalenia nie są obsługiwane.

Workbook nie ma arkuszy po konstrukcji Domyślny arkusz jest zawsze tworzony przez Workbook(). Wywołaj GetWorksheets()[0] aby uzyskać dostęp do niego.

Dispose nie został wywołany Zawsze wywołuj workbook.Dispose() aby zwolnić zasoby, szczególnie w aplikacjach działających długo.

Najczęściej zadawane pytania

Czy mogę dodać wiele arkuszy do jednego skoroszytu?

Tak. Użyj Workbook::GetWorksheets(), aby uzyskać dostęp do kolekcji i dodawać arkusze programowo. Upewnij się, że każdy arkusz ma unikalną nazwę, używając Workbook::EnsureUniqueSheetName().

Jak ustawić format liczbowy dla komórki?

Użyj Style::SetNumberFormat(format) przed wywołaniem Cell::SetStyle(style). Łańcuchy formatów podążają za standardową składnią formatu liczbowego Excel.

Czy mogę zastosować ten sam styl do wielu komórek?

Tak. Pobierz styl raz, zmodyfikuj go, a następnie wywołaj SetStyle(style) na każdej docelowej komórce.

Czy formuła jest obliczana przy zapisywaniu?

Nie. Obliczanie formuły odbywa się w Excelu lub kompatybilnym czytniku po otwarciu pliku. Biblioteka zapisuje ciąg formuły w komórce.

Ile wierszy i kolumn może pomieścić arkusz kalkulacyjny?

Każdy arkusz przechowuje dane w pełnej siatce wierszy i kolumn, zgodnie ze standardowymi wymiarami arkusza kalkulacyjnego.

Zobacz także

 Polski