Як завантажити таблицю в C++

Як завантажити таблицю в C++

Aspose.Cells FOSS for C++ allows you to load and read existing XLSX spreadsheets without requiring Microsoft Excel. This guide walks through loading a workbook, accessing worksheets, and reading cell values using the Workbook, Worksheet, і Cell заняття.

Крок за кроком посібник

Перший крок: Створити.

Додайте Aspose.Cells FOSS для C++ до проекту CMake:

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

add_subdirectory(path/to/Aspose.Cells-FOSS-for-Cpp)

add_executable(LoadSpreadsheet main.cpp)
target_link_libraries(LoadSpreadsheet PRIVATE Aspose.Cells.Foss.Cpp)

2 крок: включте обов’язкові заголовки.

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

using namespace Aspose::Cells_FOSS;

Крок 3: Завантажити робочий лист

Передати шлях файлу до Workbook конструктор для завантаження існуючих файлів XLSX:

int main() {
    Workbook workbook("input.xlsx");
    // workbook is now loaded and ready to use
    return 0;
}

Крок 4: Доступ до таблиці

Використання Workbook::GetWorksheets() щоб отримати колекцію таблиць, а потім доступ за показником:

Worksheet& sheet = workbook.GetWorksheets()[0];
std::string name = sheet.GetName();

Крок 5: Читання значення клітин

Доступ до клітин за адресною строкою і читання їх цінностей:

std::string text = sheet.GetCells()["A1"].GetStringValue();
double number = sheet.GetCells()["B2"].GetValue().AsDouble();
bool flag = sheet.GetCells()["C3"].GetValue().AsBool();

Шість: Заховить будь-які зміни

Після внесення змін збережіть назад до файлу:

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

Загальні проблеми та рішення

Файл не знайдений , помилка при завантаженні Перевірте, що шлях файлу правильний і файл існує. Використовуйте абсолютний шлях, якщо робочий каталог невизначений.

Пусте число для клітини . Використання GetValue().AsDouble() замість GetStringValue()GetStringValue() повертає порожній ряд для клітин, які містять числа, а не текст.

Завантаження робочого книжка, але клітини з’являються порожніми Переконайтеся, що файл XLSX не захищений паролем. Aspose.Cells FOSS для C++ не підтримує шифровані файли.

Формула в ячейці повертає несподіване значення У формулярних ячейках зберігається струнка формула, а не обчислене значення. Формула оцінюється Excel при відкритті файлу. Додаток: GetFormula() щоб отримати текст формули.

Пам’ять не вивільнюється після обробки. Call workbook.Dispose() після завершення всіх операцій звільнити непідконтрольні ресурси.

Часто задавані запитання

Чи можу я завантажити кілька таблиць з одного файлу?

Так, використовуйте. Workbook::GetWorksheets() для доступу до всіх листів і повторювати за індексом. Покликання sheet.GetName() ідентифікувати кожен лист по імені.

Чи можу я завантажити файли XLSX з декількома листами і читати від конкретного?

Да. Доступні листи за нульовим індексом: workbook.GetWorksheets()[1] повертає другий лист.

Чи завантаження файлу викликає перерахунок формули?

Ні. Бібліотека завантажує значення клітин і послідовності формул, що зберігаються в файлі XLSX. Перерахунок формула відбувається у Excel або сумісному читачі при відкритті файлу.

Що відбувається, якщо шлях файлу містить символи Unicode?

Пройдіть шлях як std::string У Windows, переконайтеся в тому, що кодування шляху відповідає локальній системі.

Чи безпечно завантажувати один і той же файл кілька разів одночасно?

Бібліотека не є безпечною для одночасного доступу до неї. Workbook Завантаження окремо. Workbook інстанції на нитку.

See Also

 Українська