Как да заредите таблица в 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();Стъпка 6: Запази промените
След като направите промени, запазете обратно във файл:
workbook.Save("output.xlsx");
workbook.Dispose();Обичайни проблеми и решения
Файл не е открит грешка при зареждане Проверете дали пътят на файла е верен и че файлът съществува. Използвайте абсолютен път, ако работната директория не е сигурна.
Пуст ред се връща за цифрова клетка Използване на: GetValue().AsDouble() вместо: GetStringValue() — GetStringValue() връща празен ред за клетки, които съдържат числа вместо текст.
Зареждане на работния лист, но клетките се показват празни Уверете се, че файлът XLSX не е защитен с парола. Aspose.Cells FOSS за C++ не поддържа криптирани файлове.
Клетка с формула връща неочаквана стойност Формулите в клетките съхраняват реда на формулата, а не изчислената стойност. Формата се оценява от Excel при отваряне на файла. Използвайте GetFormula() да се изтегли текста на формулата.
Неиздадена памет след обработка Обади се. workbook.Dispose() след като всички операции са завършени, да освободите неуправляемите ресурси.
Често задавани въпроси
Мога ли да залагам няколко работни листа от един файл?
Да, използвай. Workbook::GetWorksheets() да се достъпят всички листа и iterate по индекс. sheet.GetName() да се идентифицира всяко листо по име.
Мога ли да зареждам XLSX файлове с няколко листа и да чета от конкретен?
Да, достъпен лист по индекс на нулева база: workbook.GetWorksheets()[1] връща втория лист.
Зареждането на файл задейства ли преизчисление?
Не. Библиотеката зарежда стойностите на клетките и последователствата от формули, съхранявани във файла XLSX. Преизчислението на формула се извършва в Excel или съвместим четец при отваряне на файлът.
Какво се случва, ако пътят на файла съдържа символи в Unicode?
Преминавай пътя като… std::string с правилното кодиране за вашата платформа. UTF-8 пътища са поддържани на Linux и macOS. На Windows, уверете се, че кодирането на пътя съответства на локалната система.
Безопасно ли е да се зарежда един и същ файл няколко пъти едновременно?
Библиотеката не е безопасна за едновременен достъп до същите Workbook Зареждане отделно. Workbook инстанции на нишка.