Як завантажити таблицю в 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 інстанції на нитку.