Hücreler ve veri modeli ile çalışmak
Hücreler ve veri modeli ile çalışmak
O zamanlar Cell sınıf, ayrı spreadsheet hücre değerleri, formül ve stillerin okuma ve yazılması için ana arayüzüdür. Cells Bir adres çubuğu kullanarak toplama.
Hücreler için değerler yazmak
Kullanım Cell::PutValue Bir hücreye metin, sayı, boolean veya tarih yazmak için:
#include "aspose/cells_foss/Workbook.h"
#include "aspose/cells_foss/Worksheet.h"
#include "aspose/cells_foss/Cell.h"
using namespace Aspose::Cells_FOSS;
int main() {
Workbook workbook;
Worksheet& sheet = workbook.GetWorksheets()[0];
sheet.GetCells()["A1"].PutValue("Product");
sheet.GetCells()["B1"].PutValue("Price");
sheet.GetCells()["A2"].PutValue("Widget");
sheet.GetCells()["B2"].PutValue(9.99);
sheet.GetCells()["C2"].PutValue(true);
workbook.Save("data.xlsx");
return 0;
}Formüller Kurmak
Kullanım Cell::SetFormula(formula) Excel uyumlu bir formül yazmak için. formülleri, dosya açılırken Excel veya uyumluluk okuyucu tarafından değerlendirilir.
sheet.GetCells()["B4"].SetFormula("=SUM(B2:B3)");
sheet.GetCells()["C4"].SetFormula("=AVERAGE(B2:B3)");Cell değerleri okuyun
Bir hücrenin mevcut değerini okuyun Cell::GetValue(),A’ya geri dönen CellValue Konu: Uygun bir aksesuar kullanarak belirli bir tip haline dönüştürülür:
CellValue val = sheet.GetCells()["B2"].GetValue();
double price = val.AsDouble();
std::string text = sheet.GetCells()["A2"].GetStringValue();O zamanlar CellValue Sınıf tipik aksesuarlar sunar:
| Method | Geri Dönüş Türü |
|---|---|
AsDouble() | double |
AsInteger() | int |
AsBool() | bool |
AsString() | std::string |
AsDateTime() | DateTime |
Süt ve sütun ile hücreler erişimi
Adres zincirlerinin yanı sıra, sıfır tabanlı satır ve sütun göstergeleri ile erişim hücreleri:
// Address string
Cell& cellA1 = sheet.GetCells()["A1"];
// Row/column index (0-based)
int row = cellA1.GetRow();
int col = cellA1.GetColumn();Süt hücreleri
Kullanım Cells::Merge Bir hücreye bir düzlem aralığı birleştirmek için:
CellArea area = CellArea::CreateCellArea("A1", "C1");
sheet.GetCells().Merge(area.StartRow, area.StartColumn,
area.EndRow - area.StartRow + 1,
area.EndColumn - area.StartColumn + 1);Teklifi Göstermek
hücre değerini formatlı görüntü metni olarak geri almak için (sayı biçimleri uygulamak), kullanın Cell::GetDisplayStringValue():
std::string display = sheet.GetCells()["B2"].GetDisplayStringValue();İpuçları ve En İyi Uygulamalar
- Prefer
PutValueÜzerineSetValueDoğrudan sözlü görevler için -PutValueTüm ilkel türler için aşırı yükleme vardır. - Kullanım
GetStringValue()Tip dönüştürme olmadan metin geri almak için; kullanmakGetValue().AsDouble()Sayısal doğruluk gerektirir. - Her zaman arama
SetFormulaformül hücreleri için değil,PutValue("=SUM(...)")- Bu, bir formül değil, kelime olarak bir çerçeveyi kaydeder. - Kullanım
CellArea::CreateCellArea(start, end)Birleşme ve biçimlendirme operasyonları için aralıklı nesneler oluşturmak.
ortak sorunlar
| Issue | Cause | Fix |
|---|---|---|
GetValue() Boş döndü | Cell yazılmamıştır | Bir değer yazın PutValue Okumadan önce |
| Formula Değerlendirilmemiş | Formül string olarak kaydedildi | Kullanım SetFormula(expr) Bunun yerine PutValue(expr) |
| Birleşme başarısızlık | Engelli aralık boyutları | Ensure endRow >= startRow ve endColumn >= startColumn |
| Tipi yanlışlık okuma | Yanlış çağrısı As*() Yöntemler | Aksesuarı orijinal ile eşleştirin PutValue Tipi |
API Referans Özetleri
| Sınıf / Yöntem | Description |
|---|---|
Cell::PutValue(value) | Hücreye bir değer yazın. |
Cell::SetFormula(formula) | Excel Formula Çizgisi |
Cell::GetValue() | hücre değerini bir olarak geri getirin. CellValue |
Cell::GetStringValue() | Bir çubuk olarak hücre değerini geri getirin |
Cell::GetDisplayStringValue() | Formatlı ekran çubuğunu geri getirin |
Cell::GetRow() | 0 tabanlı satır endeksi alın |
Cell::GetColumn() | 0 tabanlı sütun endeksi alın |
Cell::GetStyle() | Mevcut hücre tarzını kullanın. |
Cell::SetStyle(style) | Bu hücreye değiştirilmiş bir stil uygulayın. |
CellValue::AsDouble() | hücre değerini ikiye dönüştürmek |
CellValue::AsString() | Cell değerini string’e dönüştürmek |
Cells::Merge(row, col, rows, cols) | Bir düz aralığı oluşturun |