Buat File Excel di C++

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.

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++.

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.

Buat Excel XLSX di C++

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.

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 Tabel di Excel di C++

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++.

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

Buat Bagan di Excel di C++

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++.

Artikel Terkait