Bekerja dengan Sel dan Model Data

Bekerja dengan Sel dan Model Data

Bekerja dengan Sel dan Model Data

Pengelolaan Cell class adalah antarmuka utama untuk membaca dan menulis nilai sel, rumus, dan gaya spreadsheet individu. Akses ke sebuah sel melalui halaman kerja Cells koleksi menggunakan string alamat.


Menulis Nilai ke Sel-sel

Penggunaan Cell::PutValue untuk menulis teks, angka, boolean, atau tanggal ke sel:

#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;
}

Menetapkan Rumus

Penggunaan Cell::SetFormula(formula) untuk menulis rumus yang kompatibel dengan Excel. Rumus dievaluasi oleh Excel atau pembaca yang sesuai saat file dibuka.

sheet.GetCells()["B4"].SetFormula("=SUM(B2:B3)");
sheet.GetCells()["C4"].SetFormula("=AVERAGE(B2:B3)");

Membaca Nilai Sel

Membaca nilai saat ini dari sel dengan Cell::GetValue(), yang mengembalikan a CellValue Konversi ke tipe tertentu menggunakan aksesor yang sesuai:

CellValue val = sheet.GetCells()["B2"].GetValue();
double price = val.AsDouble();
std::string text = sheet.GetCells()["A2"].GetStringValue();

Pengelolaan CellValue kelas menyediakan aksesor yang diketik:

MethodJenis pengembalian
AsDouble()double
AsInteger()int
AsBool()bool
AsString()std::string
AsDateTime()DateTime

Mengakses sel berdasarkan baris dan kolom

Selain string alamat, akses sel dengan indeks baris dan kolom berbasis nol:

// Address string
Cell& cellA1 = sheet.GetCells()["A1"];

// Row/column index (0-based)
int row = cellA1.GetRow();
int col = cellA1.GetColumn();

Sel yang Gabung

Penggunaan Cells::Merge untuk menggabungkan rentang sel persegi panjang menjadi satu:

CellArea area = CellArea::CreateCellArea("A1", "C1");
sheet.GetCells().Merge(area.StartRow, area.StartColumn,
                       area.EndRow - area.StartRow + 1,
                       area.EndColumn - area.StartColumn + 1);

Menemukan Teks Tampilan

Untuk mendapatkan nilai sel sebagai teks tampilan yang diformat (menggunakan format angka), gunakan Cell::GetDisplayStringValue():

std::string display = sheet.GetCells()["B2"].GetDisplayStringValue();

Tips dan Praktik Terbaik

  • Prefer PutValue di atas SetValue untuk tugas langsung secara harfiah PutValue memiliki kelebihan beban untuk semua tipe primitif.
  • Penggunaan GetStringValue() untuk mengambil teks tanpa konversi tipe; menggunakan GetValue().AsDouble() ketika Anda membutuhkan presisi numerik.
  • Selalu menelepon. SetFormula untuk sel formula, tidak PutValue("=SUM(...)") yang terakhir menyimpan string literal, bukan rumus.
  • Penggunaan CellArea::CreateCellArea(start, end) untuk membangun objek rentang untuk operasi penggabungan dan pemformatan.

Masalah Umum

IssueCausePerbaiki
GetValue() kembali kosongSel belum ditulisTuliskan nilai dengan PutValue sebelum membaca
Rumus tidak dievaluasiRumus disimpan sebagai stringPenggunaan SetFormula(expr) sebagai pengganti PutValue(expr)
Merger gagalUkuran kisaran yang tidak validEnsure endRow >= startRow dan (b) endColumn >= startColumn
Ketidaksesuaian tipe pada readMenghubungi salah As*() metodeCocokkan aksesori dengan asli PutValue jenisnya

Ringkasan Referensi API

Kelas/MetodeDescription
Cell::PutValue(value)Tuliskan nilai literal ke sel
Cell::SetFormula(formula)Tetapkan string rumus Excel
Cell::GetValue()Dapatkan nilai sel sebagai a CellValue
Cell::GetStringValue()Memperoleh nilai sel sebagai string
Cell::GetDisplayStringValue()Memperoleh string tampilan yang diformat
Cell::GetRow()Dapatkan indeks baris berbasis nol
Cell::GetColumn()Dapatkan indeks kolom berbasis nol
Cell::GetStyle()Dapatkan gaya sel saat ini
Cell::SetStyle(style)Menerapkan gaya yang dimodifikasi ke sel
CellValue::AsDouble()Konversi nilai sel menjadi dua kali lipat
CellValue::AsString()Konversi nilai sel ke string
Cells::Merge(row, col, rows, cols)Gabungkan rentang persegi panjang

See Also

 Bahasa Indonesia