Cara Membuat dan Mengisi Model Data Spreadsheet dalam C++

Cara Membuat dan Mengisi Model Data Spreadsheet dalam C++

Panduan ini menunjukkan cara membuat buku kerja, mengisi sel dengan nilai dan rumus, menerapkan gaya, dan menyimpan sebagai file spreadsheet menggunakan Aspose.Cells FOSS untuk perpustakaan C++. Kelas inti yang terlibat adalah: Workbook, Worksheet, Cell, dan Style.

Panduan Langkah-Langkah

Langkah 1: Siapkan Bangunan

Tambahkan perpustakaan Cells FOSS ke proyek CMake Anda dan hubungkan Aspose.Cells.Foss.Cpp target:

cmake_minimum_required(VERSION 3.15)
project(CreateSpreadsheet CXX)
set(CMAKE_CXX_STANDARD 17)

add_subdirectory(path/to/Aspose.Cells-FOSS-for-Cpp)
add_executable(CreateSpreadsheet main.cpp)
target_link_libraries(CreateSpreadsheet PRIVATE Aspose.Cells.Foss.Cpp)

Langkah 2: Sertakan Header dan Set Namespace

Masukkan header per kelas dari aspose/cells_foss/ untuk setiap kelas yang Anda gunakan (Workbook.h, Worksheet.h, Cell.h, Style.h, Font.h, Color.h, CellArea.h), lalu buka Aspose::Cells_FOSS ruang nama:

using namespace Aspose::Cells_FOSS;

Langkah 3: Buat Buku Kerja dan Nama Lembar

Instantiate Workbook, dapatkan lembar kerja pertama melalui GetWorksheets()[0], dan atur nama tampilan:

int main() {
    Workbook workbook;
    Worksheet& sheet = workbook.GetWorksheets()[0];
    sheet.SetName("Sales");
    return 0;
}

Langkah 4: Tambahkan Nilai Sel

Call GetCells()["A1"].PutValue() untuk menulis string teks, nilai numerik, dan boolean ke dalam sel-sel individu berdasarkan alamat:

sheet.GetCells()["A1"].PutValue("Product");
sheet.GetCells()["B1"].PutValue("Price");
sheet.GetCells()["A2"].PutValue("Widget");
sheet.GetCells()["B2"].PutValue(9.99);
sheet.GetCells()["A3"].PutValue("Gadget");
sheet.GetCells()["B3"].PutValue(24.99);

Langkah 5: Atur Rumus

Call SetFormula() pada sel untuk menyimpan string rumus yang kompatibel dengan Excel; formula dievaluasi oleh Excel saat file dibuka:

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

Langkah 6: Terapkan Styling Sel

Dapatkan gaya dengan Cell::GetStyle(), memodifikasinya, dan menerapkannya dengan Cell::SetStyle(style):

Style headerStyle = sheet.GetCells()["A1"].GetStyle();
Font font;
font.SetBold(true);
font.SetColor(Color::FromArgb(255, 255, 255, 255));
headerStyle.SetFont(font);
headerStyle.SetPattern(FillPattern::Solid);
headerStyle.SetForegroundColor(Color::FromArgb(255, 34, 120, 212));
sheet.GetCells()["A1"].SetStyle(headerStyle);
sheet.GetCells()["B1"].SetStyle(headerStyle);

Langkah 7: Gabungkan Sel-sel

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

CellArea titleArea = CellArea::CreateCellArea("A1", "B1");
sheet.GetCells().Merge(0, 0, 1, 2);

Langkah 8: Simpan Buku Kerja

Call workbook.Save() dengan nama file untuk menulis spreadsheet sebagai file XLSX, kemudian memanggil Dispose() untuk melepaskan sumber daya:

workbook.Save("sales.xlsx");
workbook.Dispose();

Masalah dan Fixes Umum

Gaya tidak diterapkan setelah menyimpan Selalu menelepon. Cell::SetStyle(style) Setelah memodifikasi objek gaya. Memodif style yang dikembalikan secara langsung tidak menerapkan perubahan; Anda harus mengaturnya kembali dengan jelas.

Rumus yang disimpan sebagai string literal Penggunaan SetFormula("=SUM(...)") tidak ada PutValue("=SUM(...)"). PutValue memperlakukan argumen sebagai string literal, bukan rumus.

Sel yang digabungkan tidak ditampilkan dengan benar Pastikan parameter penggabungan (baris, kolom, rowCount, columnCounting) benar mencakup kisaran yang diinginkan. Merga yang tumpang tindih tidak didukung.

Buku kerja tidak memiliki lembar setelah konstruksi Sebuah lembar default selalu dibuat oleh Workbook().- Panggil. GetWorksheets()[0] untuk mengaksesnya.

Buang tidak disebut Selalu menelepon. workbook.Dispose() untuk melepaskan sumber daya, terutama dalam aplikasi yang berjalan lama.

Pertanyaan yang sering ditanya

Bisakah saya menambahkan beberapa lembar kerja ke satu buku?

Ya, gunakan. Workbook::GetWorksheets() Untuk mengakses koleksi dan menambahkan lembar secara programatis. Pastikan setiap sheet memiliki nama unik menggunakan Workbook::EnsureUniqueSheetName().

Bagaimana saya mengatur format nomor untuk sel?

Penggunaan Style::SetNumberFormat(format) sebelum menelepon. Cell::SetStyle(style). Format string mengikuti sintaksis format nomor Excel standar.

Dapatkah saya menerapkan gaya yang sama untuk beberapa sel?

Dapatkan gaya sekali, modifikasi, lalu hubungi SetStyle(style) pada setiap sel target.

Apakah rumus itu dievaluasi saat disimpan?

Tidak. Evaluasi rumus terjadi di Excel atau pembaca yang kompatibel ketika file dibuka. Perpustakaan menuliskan string formula ke sel.

Berapa banyak baris dan kolom yang dapat disimpan dalam lembar kerja?

Setiap lembar kerja berisi data di seluruh grid baris dan kolomnya, mengikuti dimensi spreadsheet standar.

See Also

 Bahasa Indonesia