Как создать и заполнить модель данных электронной таблицы в C++?
В этом руководстве показано, как создать рабочую книжку, заполнить ячейки значениями и формулами, применить стили и сохранить в качестве файла электронной таблицы с помощью библиотеки Aspose.Cells FOSS для C++. Основные классы включают: Workbook, Worksheet, Cell, и Style.
Крок за шагом руководство
Шаг 1: Настройка здания
Добавить библиотеку Cells FOSS в свой проект CMake и соединить с ней 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)Шаг 2: Включить заголовки и установить пространство для имен
Включить заголовки на класс из: aspose/cells_foss/ для каждого класса, который вы используете (Workbook.h, Worksheet.h, Cell.h, Style.h, Font.h, Color.h, CellArea.h), затем открыть Aspose::Cells_FOSS пространство имен:
using namespace Aspose::Cells_FOSS;Шаг 3: Создайте рабочий лист и назовите его именем .
Instantiate Workbook, получить первый рабочий лист через: GetWorksheets()[0], и установить его название:
int main() {
Workbook workbook;
Worksheet& sheet = workbook.GetWorksheets()[0];
sheet.SetName("Sales");
return 0;
}Шаг 4: Добавление значений ячейки
Call GetCells()["A1"].PutValue() для записи текстовых строков, числовых значений и булевых слов в отдельные ячейки по адресу:
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);Шаг 5: Настройте формулу
Call SetFormula() на ячейке для хранения строки формулы, совместимой с Excel; формула оценивается в Excel при открытии файла:
sheet.GetCells()["B4"].SetFormula("=SUM(B2:B3)");Шаг 6: Применение стилизации ячейки
Пойми стиль с Cell::GetStyle(), изменяют его и применяются с 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);Шаг 7: Объединение ячеек
Использование: Cells::Merge объединить диапазон в одну ячейку:
CellArea titleArea = CellArea::CreateCellArea("A1", "B1");
sheet.GetCells().Merge(0, 0, 1, 2);Шаг 8: Сохранить учебник
Call workbook.Save() с именем файла, чтобы написать таблицу как XLSX-файл, затем позвонить Dispose() освободить ресурсы:
workbook.Save("sales.xlsx");
workbook.Dispose();Общие проблемы и фиксированные
Стиль не применяется после сохранения Всегда звони . Cell::SetStyle(style) После изменения объекта стиля. Изменение возвращенного стила напрямую не применяет изменений; вы должны явно установить его обратно.
Формула хранится как буквальный строку. Использование: SetFormula("=SUM(...)") не входит. PutValue("=SUM(...)"). PutValue рассматривает аргумент как буквальную строку, а не формулу.
Слияние ячейки не представляет себя правильно Убедитесь, что параметры слияния (строка, столбца, строкаCount, колоннаCound) правильно охватывают предполагаемый диапазон. Не поддерживаются перекрываемые сливания.
Сборник не имеет листов после постройки. Обычный лист всегда создается: Workbook().- Позвони . GetWorksheets()[0] чтобы получить к ней доступ.
Не называется . Всегда звони . workbook.Dispose() освободить ресурсы, особенно в долгосрочных приложениях.
Часто задаваемые вопросы
Могу ли я добавить несколько рабочих листов в одну рабочую книгу?
Да, используйте. Workbook::GetWorksheets() Чтобы получить доступ к коллекции и добавить листы программированно. Убедитесь, что каждый лист имеет уникальное имя с использованием Workbook::EnsureUniqueSheetName().
Как я настраиваю формат номера для ячейки?
Использование: Style::SetNumberFormat(format) перед звонком . Cell::SetStyle(style). Форматирование строки следует стандартному синтаксису формата Excel.
Могу ли я применить один и тот же стиль к нескольким клеткам?
Да, один раз получи стиль, измени его и позвони. SetStyle(style) на каждой целевой ячейке.
Формула оценивается после сохранения?
Не. Оценка формулы происходит в Excel или совместимом с ней читателе, когда файл открывается. Библиотека записывает строку формул в ячейку.
Сколько строк и столбцов может вместить лист?
Каждый лист содержит данные по всей сетке из строк и столбцов, следуя стандартным размерам таблицы.