
Sebelumnya, saya telah menulis posting tentang cara mengimplementasikan fitur otomasi Excel dan membuat file Excel XLS/XLSX dari awal menggunakan C#. Hari ini, saya akan menunjukkan cara membuat buku kerja Excel, menyisipkan data ke lembar kerja Excel, menghitung rumus, dan membuat bagan dan tabel di lembar kerja menggunakan C++. Semua fitur otomatisasi spreadsheet akan didukung oleh C++ Excel API - Aspose.Cells for C++.
Aspose.Cells for C++ adalah pustaka C++ asli yang memungkinkan Anda membuat, membaca, mengurai, dan mengonversi dokumen spreadsheet tanpa memerlukan Microsoft Excel. Ini menyediakan satu set lengkap fitur otomatisasi Excel yang dapat digunakan untuk menghasilkan dan memanipulasi spreadsheet XLS/XLSX. Pada artikel ini, kami akan membahas fitur berikut untuk membuat file Excel XLS/XLSX dari awal.
- Buat file Excel (XLS/XLSX) menggunakan C++
- Tambahkan data ke lembar kerja Excel menggunakan C++
- Hitung rumus buku kerja menggunakan C++
- Buat tabel di lembar kerja Excel menggunakan C++
- Buat grafik di Excel XLS/XLSX menggunakan C++
C++ Excel Spreadsheet API - Instalasi
Anda dapat mengunduh paket lengkap file pustaka Aspose.Cells for C++ dari bagian Unduhan. Paket ini juga berisi contoh aplikasi konsol yang siap dijalankan.
Buat File Excel (XLS/XLSX) menggunakan C++
Pertama mari kita buat buku kerja Excel XLSX sederhana dari awal. Buku kerja terdiri dari satu atau beberapa lembar kerja dan setiap lembar kerja berisi data dalam bentuk baris dan kolom. Oleh karena itu, untuk membuat spreadsheet Excel, Anda perlu membuat buku kerja terlebih dahulu, lalu menambahkan lembar kerja di dalamnya. Berikut langkah-langkah membuat file Excel menggunakan Aspose.Cells for C++.
- Buat objek dari kelas IWorkbook.
- Dapatkan lembar kerja pertama (dibuat secara default) dari buku kerja ke dalam objek IWorksheet dari IWorksheetCollection.
- Akses sel lembar kerja ke dalam objek ICells menggunakan metode IWorksheet->GetICells().
- Akses sel lembar kerja yang diinginkan ke objek ICell menggunakan metode ICells->GetObjectByIndex() dengan menentukan indeks baris dan kolom.
- Tambahkan nilai ke sel menggunakan metode ICell->PutValue().
- Simpan buku kerja sebagai file .xlsx menggunakan metode IWorkbook->Save().
Contoh kode berikut menunjukkan cara membuat file Excel XLSX menggunakan C++.
/*create a new workbook*/
intrusive_ptr<IWorkbook> wb = Factory::CreateIWorkbook();
/*get the first worksheet*/
intrusive_ptr<IWorksheetCollection> wsc = wb->GetIWorksheets();
intrusive_ptr<IWorksheet> ws = wsc->GetObjectByIndex(0);
/*get cell(0,0)*/
intrusive_ptr<ICells> cells = ws->GetICells();
intrusive_ptr<ICell> cell = cells->GetObjectByIndex(0, 0);
/*write "Hello World" to cell(0,0) of the first sheet*/
intrusive_ptr<String> str = new String("Hello World!");
cell->PutValue(str);
/*save this workbook to resultFile folder*/
wb->Save(resultPath->StringAppend(new String("workbook.xlsx")));
Buku Kerja Excel
Berikut screenshot dari buku kerja Excel yang baru saja kita buat.

Tambahkan Data ke Lembar Kerja Excel menggunakan C++
Pada contoh sebelumnya, kita telah melihat cara membuat file Excel sederhana dan memasukkan nilai ke sel tertentu menggunakan indeks baris dan kolom. Namun, paling sering sel di lembar kerja Excel diidentifikasi menggunakan huruf kolom dan nomor baris seperti A1, A2, B1, dan lain-lain. Jadi mari kita lihat contoh cara memasukkan data ke dalam lembar kerja menggunakan nama sel. Prosesnya hanya berbeda dalam menambahkan nilai ke sel dan semua langkah lain untuk membuat buku kerja dan lembar kerja Excel adalah sama.
Contoh kode berikut menunjukkan cara membuat buku kerja Excel XLSX dan memasukkan data ke dalamnya menggunakan C++.
//Jalur file excel keluaran
StringPtr outputData = resultPath->StringAppend(new String("outputData.xlsx"));
//Baca file excel masukan
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
//Mengakses lembar kerja kedua di file Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
//Menambahkan nilai string ke sel
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue("Hello World");
//Menambahkan nilai ganda ke sel
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(20.5);
//Menambahkan nilai integer ke sel
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(15);
//Menambahkan nilai boolean ke sel
worksheet->GetICells()->GetObjectByIndex(new String("A4"))->PutValue(true);
//Mengatur format tampilan tanggal
intrusive_ptr<ICell> cell = worksheet->GetICells()->GetObjectByIndex(new String("A5"));
intrusive_ptr<IStyle> style = cell->GetIStyle();
style->SetNumber(15);
cell->SetIStyle(style);
//Simpan buku kerja
workbook->Save(outputData);
Hitung Rumus Workbook menggunakan C++
Mengatur rumus di buku kerja Excel adalah fitur luar biasa untuk melakukan perhitungan pada data. Itu membuatnya lebih mudah untuk melakukan perhitungan kompleks pada data secara efektif dan efisien. Berikut adalah langkah-langkah untuk mengatur dan menghitung rumus pada lembar kerja Excel.
- Buat objek dari kelas IWorkbook.
- Dapatkan lembar kerja menjadi objek IWorksheet dari IWorksheetCollection.
- Gunakan kelas ICell untuk mengakses sel tempat Anda ingin menerapkan rumus.
- Tetapkan rumus untuk sel menggunakan metode ICell->SetFormula().
- Hitung rumus menggunakan metode IWorkbook->CalculateFormula().
- Simpan buku kerja menggunakan metode IWorkbook->Save().
Contoh kode berikut menunjukkan cara menambahkan dan menghitung rumus di buku kerja Excel XLSX menggunakan C++.
//Buat buku kerja baru
intrusive_ptr<IWorkbook> wb = Factory::CreateIWorkbook();
//Dapatkan lembar kerja pertama yang dibuat secara default
intrusive_ptr<IWorksheet> ws = wb->GetIWorksheets()->GetObjectByIndex(0);
//Menambahkan nilai ke sel "A1".
intrusive_ptr<ICell> cell = ws->GetICells()->GetObjectByIndex(new String("A1"));
cell->PutValue(5);
//Menambahkan nilai ke sel "A2".
cell = ws->GetICells()->GetObjectByIndex(new String("A2"));
cell->PutValue(15);
//Menambahkan nilai ke sel "A3".
cell = ws->GetICells()->GetObjectByIndex(new String("A3"));
cell->PutValue(25);
//Menambahkan rumus SUM ke sel "A4".
cell = ws->GetICells()->GetObjectByIndex(new String("A4"));
cell->SetFormula(new String("=SUM(A1:A3)"));
//Menghitung hasil rumus
wb->CalculateFormula();
//Dapatkan nilai yang dihitung dari sel "A4" dan cetak di konsol
cell = ws->GetICells()->GetObjectByIndex(new String("A4"));
StringPtr sCalcuInfo = new String(L"Calculated Value of Cell A4: ");
Console::WriteLine(sCalcuInfo->StringAppend(cell->GetStringValue()));
Buat Tabel di Lembar Kerja Excel menggunakan C++
Tabel di lembar kerja Excel digunakan untuk mengatur sekelompok data yang terletak di rentang sel. Tabel juga membantu Anda mempertahankan berbagai jenis daftar di lembar kerja. Berikut langkah-langkah membuat tabel pada lembar kerja Excel.
- Buat buku kerja Excel baru menggunakan kelas IWorkbook.
- Akses lembar kerja default ke objek IWorksheet atau tambahkan yang baru.
- Masukkan nilai/data ke dalam sel dengan cara yang sama seperti yang telah kita lakukan pada contoh sebelumnya.
- Tambahkan rentang sel ke daftar kumpulan lembar kerja menggunakan metode IWorksheet->GetIListObjects()->Add().
- Masukkan daftar ke dalam objek IListObject.
- Terapkan gaya ke tabel menggunakan metode IListObject->SetTableStyleType().
- Simpan buku kerja sebagai file .xlsx.
Contoh kode berikut menunjukkan cara membuat tabel di file Excel XLSX menggunakan C++.
// Membuat instance objek Workbook
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Memperoleh referensi lembar kerja default (pertama).
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Memperoleh koleksi sel Worksheet
intrusive_ptr<ICells> cells = worksheet->GetICells();
// Mengatur nilai ke sel
cells->GetObjectByIndex(new String("A1"))->PutValue("Employee");
cells->GetObjectByIndex(new String("B1"))->PutValue("Quarter");
cells->GetObjectByIndex(new String("C1"))->PutValue("Product");
cells->GetObjectByIndex(new String("D1"))->PutValue("Continent");
cells->GetObjectByIndex(new String("E1"))->PutValue("Country");
cells->GetObjectByIndex(new String("F1"))->PutValue("Sale");
cells->GetObjectByIndex(new String("A2"))->PutValue("David");
cells->GetObjectByIndex(new String("A3"))->PutValue("David");
cells->GetObjectByIndex(new String("A4"))->PutValue("David");
cells->GetObjectByIndex(new String("A5"))->PutValue("David");
cells->GetObjectByIndex(new String("A6"))->PutValue("James");
cells->GetObjectByIndex(new String("B2"))->PutValue(1);
cells->GetObjectByIndex(new String("B3"))->PutValue(2);
cells->GetObjectByIndex(new String("B4"))->PutValue(3);
cells->GetObjectByIndex(new String("B5"))->PutValue(4);
cells->GetObjectByIndex(new String("B6"))->PutValue(1);
cells->GetObjectByIndex(new String("C2"))->PutValue("Maxilaku");
cells->GetObjectByIndex(new String("C3"))->PutValue("Maxilaku");
cells->GetObjectByIndex(new String("C4"))->PutValue("Chai");
cells->GetObjectByIndex(new String("C5"))->PutValue("Maxilaku");
cells->GetObjectByIndex(new String("C6"))->PutValue("Chang");
cells->GetObjectByIndex(new String("D2"))->PutValue("Asia");
cells->GetObjectByIndex(new String("D3"))->PutValue("Asia");
cells->GetObjectByIndex(new String("D4"))->PutValue("Asia");
cells->GetObjectByIndex(new String("D5"))->PutValue("Asia");
cells->GetObjectByIndex(new String("D6"))->PutValue("Europe");
cells->GetObjectByIndex(new String("E2"))->PutValue("China");
cells->GetObjectByIndex(new String("E3"))->PutValue("India");
cells->GetObjectByIndex(new String("E4"))->PutValue("Korea");
cells->GetObjectByIndex(new String("E5"))->PutValue("India");
cells->GetObjectByIndex(new String("E6"))->PutValue("France");
cells->GetObjectByIndex(new String("F2"))->PutValue(2000);
cells->GetObjectByIndex(new String("F3"))->PutValue(500);
cells->GetObjectByIndex(new String("F4"))->PutValue(1200);
cells->GetObjectByIndex(new String("F5"))->PutValue(1500);
cells->GetObjectByIndex(new String("F6"))->PutValue(500);
// Menambahkan Objek Daftar baru ke lembar kerja
worksheet->GetIListObjects()->Add(new String("A1"), new String("F6"), true);
intrusive_ptr<IListObject> listObject = worksheet->GetIListObjects()->GetObjectByIndex(0);
// Menambahkan Gaya Default ke tabel
listObject->SetTableStyleType(TableStyleType_TableStyleMedium10);
// Tampilkan Total
listObject->SetShowTotals(true);
// Menyimpan file Excel
workbook->Save(resultPath->StringAppend(new String("Excel_Table.xlsx")));
Buku Kerja Excel dengan Tabel

Buat Bagan di Excel Spreadsheet menggunakan C++
Bagan di spreadsheet Excel digunakan untuk memvisualisasikan data menggunakan berbagai jenis objek grafis. Mereka memberi kami wawasan dan pemahaman cepat tentang data terutama ketika data sangat besar. Aspose.Cells for C++ mendukung berbagai bagan termasuk Sunburst, Treemap, Histogram, Pyramid, Bubble, Line, dan banyak lagi. Berikut adalah langkah-langkah membuat chart di workbook Excel menggunakan Aspose.Cells for C++.
- Buat buku kerja Excel baru.
- Akses lembar kerja yang diinginkan ke objek IWorksheet.
- Tambahkan bagan baru ke lembar kerja menggunakan metode IWorksheet->GetICharts()->Add() dengan meneruskan jenis bagan.
- Akses bagan yang baru ditambahkan ke objek IChart.
- Setel sumber data untuk bagan menggunakan metode IChart->GetNISeries()->Add().
- Simpan buku kerja sebagai file .xlsx.
Contoh kode berikut menunjukkan cara membuat bagan di file Excel XLSX menggunakan C++.
// Jalur file excel keluaran
StringPtr outputChartTypePyramid = resultPath->StringAppend(new String("Exce_Pyramid_Chart.xlsx"));
// Buat buku kerja baru
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Dapatkan lembar kerja pertama yang dibuat secara default
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Menambahkan nilai sampel ke sel
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue(50);
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(100);
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(150);
worksheet->GetICells()->GetObjectByIndex(new String("B1"))->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(new String("B2"))->PutValue(20);
worksheet->GetICells()->GetObjectByIndex(new String("B3"))->PutValue(50);
// Menambahkan grafik ke lembar kerja
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Pyramid, 5, 0, 20, 8);
// Mengakses contoh bagan yang baru ditambahkan
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);
// Menambahkan SeriesCollection (sumber data bagan) ke bagan mulai dari sel "A1" hingga "B3"
chart->GetNISeries()->Add(new String("A1:B3"), true);
// Menyimpan file Excel
workbook->Save(outputChartTypePyramid);
Buku Kerja Excel dengan Bagan

Kesimpulan
Pada artikel ini, kami telah membahas cara membuat spreadsheet MS Excel dari awal menggunakan C++. Artikel ini juga berisi panduan langkah demi langkah dan contoh kode tentang cara membuat tabel, bagan, dan menghitung rumus di lembar kerja Excel. Anda dapat mempelajari lebih lanjut tentang fitur lanjutan lainnya yang terkait dengan otomatisasi Excel dari dokumentasi Aspose.Cells for C++.