C++'da bir spreadsheet nasıl yüklenir
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,ve Cell Sınıflar için.
Adım adım rehberlik
Adım 1: Yapıyı Kurun
CMake projesine Aspose.Cells FOSS for C++ ekleyin:
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)Adım 2: Gerekli Başlıkları Ekle
#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;Adım 3: Çalışma kitabını yükleme
Dosya yolunu geçin, Workbook mevcut XLSX dosyasını yüklemek için yapımcı:
int main() {
Workbook workbook("input.xlsx");
// workbook is now loaded and ready to use
return 0;
}Adım 4: Bir çalışma sayfasına erişmek
Kullanım Workbook::GetWorksheets() İşletme listesi koleksiyonu almak için, sonra indekse erişmek:
Worksheet& sheet = workbook.GetWorksheets()[0];
std::string name = sheet.GetName();5. Adım: Hücre Değerleri Okunma
Adres çubuğuna erişim hücreleri ve değerlerini okuyun:
std::string text = sheet.GetCells()["A1"].GetStringValue();
double number = sheet.GetCells()["B2"].GetValue().AsDouble();
bool flag = sheet.GetCells()["C3"].GetValue().AsBool();Adım 6: Herhangi bir değişiklik kaydetmek
Değişiklik yaptıktan sonra, bir dosyaya geri kaydedin:
workbook.Save("output.xlsx");
workbook.Dispose();Toplam Sorunlar ve Çözümler
Dosya yükleme hatası bulunamadı Dosya yolu doğru olduğundan ve dosyanın var olduğunu kontrol edin. çalışma dizininin belirsiz olması durumunda mutlak bir yol kullanın.
Boş bir çubuk, sayısal bir hücre için geri döndü Kullanım GetValue().AsDouble() Bunun yerine GetStringValue() — GetStringValue() Bir sayı yerine metin içeren hücreler için boş bir çubuk döndürür.
İş defterleri yüklüyor ama hücreler boş görünüyor XLSX dosyasının şifre ile korunmadığından emin olun. Aspose.Cells FOSS for C++ şifreli dosyalar desteklenmez.
Formula hücresi beklenmedik değer geri getirir Formül hücreleri formül çubuğunu değil, hesaplanan değeri kaydeder. formülü Excel dosyayı açtığında değerlendirir. GetFormula() Formülün metnini geri almak için.
İşleme sonrası serbest bırakılmamış hafıza Call workbook.Dispose() Tüm işlemler tamamlandıktan sonra yönetilmemiş kaynakların serbest bırakılması için.
Sıkça Sorulan Sorular
Bir dosyadan birden fazla çalışma sayfası yükleyebilir miyim?
Evet Kullanım Workbook::GetWorksheets() Tüm sayfaya erişmek ve indekse göre iterate. sheet.GetName() Her sayfanın adını belirlemek için.
XLSX dosyalarını birden fazla sayfa ile yükleyebilir miyim ve belirli bir sayfadan okuyabilir miyiz?
Evet. 0 bazlı indekslere erişim sayfası: workbook.GetWorksheets()[1] İkinci sayfa geri getiriyor.
Bir dosya yükleme formül yeniden hesaplamayı tetikler mi?
No. Kütüphane XLSX dosyasında kaydedilen hücre değerlerini ve formül çubuklarını yüklüyor. Formül yeniden hesaplama, dosya açılırken Excel veya uyumlu bir okuyucu içinde gerçekleşir.
Dosya yolu Unicode karakterleri içeriyorsa ne olur?
Yolun bir parçası olarak geçin std::string Platformunuz için doğru kodlama ile. UTF-8 yolları Linux ve macOS’ta desteklenir. Windows’da, yolu kodlaması sistem lokali eşleştiğinden emin olun.
Aynı dosyayı aynı anda birden fazla kez yüklemek güvenli midir?
Kütüphane aynı erişim için çubuk güvenli değildir Workbook Yükleme: ayrı yükleme Workbook Üstelik thread olarak.